RpcBindingInqAuthClientEx-Funktion (rpcdce.h)

Eine Serveranwendung ruft die RpcBindingInqAuthClientEx-Funktion auf, um erweiterte Informationen über das Clientprogramm zu erhalten, das den Remoteprozeduraufruf durchgeführt hat.

Syntax

RPC_STATUS RpcBindingInqAuthClientEx(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_CSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc,
  unsigned long      Flags
);

Parameter

ClientBinding

Clientbindungshandle des Clients, der den Remoteprozeduraufruf ausgeführt hat. Dieser Wert kann auch 0 sein. Siehe Hinweise.

Privs

Gibt einen Zeiger auf ein Handle auf die privilegierten Informationen für die Clientanwendung zurück, die den Remoteprozeduraufruf für das ClientBinding-Bindungshandle durchgeführt hat. Für ncalrpc-Aufrufe enthält Privs eine Zeichenfolge mit dem Prinzipalnamen des Clients.

Die Serveranwendung muss den Parameter Privs in den Datentyp umwandeln, der durch den AuthnSvc-Parameter angegeben wird. Die Daten, auf die von diesem Argument verwiesen wird, sind schreibgeschützt und sollten von der Serveranwendung nicht geändert werden. Wenn der Server die zurückgegebenen Daten beibehalten möchte, muss der Server die Daten in den vom Server zugewiesenen Arbeitsspeicher kopieren.

Weitere Informationen zu SSPs finden Sie unter Security Support Providers (SSPs).

ServerPrincName

Gibt einen Zeiger auf einen Zeiger auf den Serverprinzipalnamen zurück, der von der Serveranwendung angegeben wird, die die RpcServerRegisterAuthInfo-Funktion aufgerufen hat. Der Inhalt des zurückgegebenen Namens und seine Syntax werden vom verwendeten Authentifizierungsdienst definiert. Für den SCHANNEL-SSP hat der Prinzipalname das msstd-Format. Weitere Informationen zum msstd-Format finden Sie unter Prinzipalnamen.

Geben Sie einen NULL-Wert an, um zu verhindern, dass RpcBindingInqAuthClientEx den ServerPrincName-Parameter zurückgibt. In diesem Fall ruft die Anwendung die RpcStringFree-Funktion nicht auf.

AuthnLevel

Gibt einen Zeiger zurück, der auf die Authentifizierungsebene festgelegt ist, die von der Clientanwendung angefordert wurde, die den Remoteprozeduraufruf für das ClientBinding-Bindungshandle durchgeführt hat. Eine Liste der VON RPC unterstützten Authentifizierungsebenen finden Sie unter Konstanten auf Authentifizierungsebene.

Geben Sie einen NULL-Wert an, um zu verhindern, dass RpcBindingInqAuthClientEx den Parameter AuthnLevel zurückgibt.

AuthnSvc

Gibt einen Zeiger zurück, der auf den Authentifizierungsdienst festgelegt ist, der von der Clientanwendung angefordert wurde, die den Remoteprozeduraufruf für das ClientBinding-Bindungshandle durchgeführt hat. Eine Liste der RPC-unterstützten Authentifizierungsdienste finden Sie unter Authentication-Service Constants.

Geben Sie einen NULL-Wert an, um zu verhindern, dass RpcBindingInqAuthClientEx den AuthnSvc-Parameter zurückgibt.

Hinweis: AuthnSvc entspricht der SECURITY_STATUS , die von QueryContextAttributes für jeden zertifikatbasierten SSP für SECPKG_ATTR_DCE_INFO oder SECPKG_ATTR_REMOTE_CERT_CONTEXT zurückgegeben wird.
 

AuthzSvc

Gibt einen Zeiger zurück, der auf den Autorisierungsdienst festgelegt ist, der von der Clientanwendung angefordert wurde, die den Remoteprozeduraufruf für das Bindungshandle durchgeführt hat. Eine Liste der VON RPC unterstützten Autorisierungsdienste finden Sie unter Authorization-Service Constants .

Geben Sie einen NULL-Wert an, um zu verhindern, dass RpcBindingInqAuthClientEx den AuthzSvc-Parameter zurückgibt. Dieser Parameter wird nicht vom RPC_C_AUTHN_WINNT-Authentifizierungsdienst verwendet. Der zurückgegebene Wert wird immer RPC_S_AUTHZ_NONE.

Flags

Steuert das Format des Prinzipalnamens. Dieser Parameter kann auf den folgenden Wert festgelegt werden.

Wert Bedeutung
RPC_C_FULL_CERT_CHAIN
Übergibt den Prinzipalnamen im vollständigen Format.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_INVALID_BINDING
Das Bindungshandle war ungültig.
RPC_S_WRONG_KIND_OF_BINDING
Dies war die falsche Art der Bindung für den Vorgang.
RPC_S_BINDING_HAS_NO_AUTH
Die Bindung enthält keine Authentifizierungsinformationen.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Eine Serveranwendung ruft die RpcBindingInqAuthClientEx-Funktion auf, um den Prinzipalnamen oder die Berechtigungsattribute des authentifizierten Clients abzurufen, der den Remoteprozeduraufruf durchgeführt hat. Darüber hinaus gibt RpcBindingInqAuthClientEx den vom Client angegebenen Authentifizierungsdienst, die Authentifizierungsebene und den Serverprinzipalnamen zurück. Der Server kann die zurückgegebenen Daten zu Autorisierungszwecken verwenden.

Die RPC-Laufzeitbibliothek belegt Arbeitsspeicher für den zurückgegebenen ServerPrincName-Parameter . Die Anwendung ist für den Aufruf der RpcStringFree-Funktion für die zurückgegebene Argumentzeichenfolge verantwortlich.

Für synchrone RPC-Aufrufe kann die Serveranwendung null als Wert für den ClientBinding-Parameter verwenden. Wenn Sie 0 verwenden, werden die Authentifizierungs- und Autorisierungsinformationen aus dem derzeit ausgeführten Remoteprozeduraufruf abgerufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rpcdce.h (rpc.h einschließen)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree