Freigeben über


RpcBindingInqAuthClientW-Funktion (rpcdce.h)

Eine Serveranwendung ruft die RpcBindingInqAuthClient--Funktion auf, um den Prinzipalnamen oder die Berechtigungsattribute des authentifizierten Clients abzurufen, der den Remoteprozeduraufruf ausgeführt hat.

Syntax

RPC_STATUS RpcBindingInqAuthClientW(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_WSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc
);

Parameter

ClientBinding

Clientbindungshandle des Clients, der den Remoteprozeduraufruf ausgeführt hat. Dieser Wert kann null sein. Siehe Anmerkungen.

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 vorgenommen hat. Für ncalrpc- Aufrufe enthält Privs eine Zeichenfolge mit dem Prinzipalnamen des Clients.

Die von diesem Parameter referenzierten Daten sind schreibgeschützt und sollten nicht von der Serveranwendung geändert werden. Wenn der Server eine der zurückgegebenen Daten beibehalten möchte, muss der Server die Daten in den vom Server zugewiesenen Speicher kopieren.

Die Daten, auf die der Privs Parameter verweist, stammen direkt vom SSP. Daher ist das Format der Daten spezifisch für den SSP. Weitere Informationen zu SSPs finden Sie unter SSPs (Security Support Providers).

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 deren Syntax werden vom verwendeten Authentifizierungsdienst definiert. Für den SCHANNEL-SSP ist der Prinzipalname im Microsoft-Standardformat (msstd) angegeben. Weitere Informationen zum msstd-Format finden Sie unter Prinzipalnamen.

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

AuthnLevel

Gibt einen Zeiger auf die Authentifizierungsebene zurück, die von der Clientanwendung angefordert wurde, die den Remoteprozeduraufruf für den ClientBinding Bindungshandle ausgeführt hat.

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

AuthnSvc

Gibt einen Zeiger auf den von der Clientanwendung angeforderten Authentifizierungsdienst zurück, der den Remoteprozeduraufruf für das ClientBinding Bindungshandle ausgeführt hat. Eine Liste der RPC-unterstützten Authentifizierungsstufen finden Sie unter Authentication-Level Konstanten.

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

AuthzSvc

Gibt einen Zeiger zurück, der auf den von der Clientanwendung angeforderten Autorisierungsdienst festgelegt ist, der den Remoteprozeduraufruf für den ClientBinding Bindungshandle ausgeführt hat.

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

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 von Bindung für den Vorgang.
RPC_S_BINDING_HAS_NO_AUTH
Die Bindung enthält keine Authentifizierungsinformationen.
 
Hinweis Eine Liste gültiger Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Bemerkungen

Eine Serveranwendung ruft die RpcBindingInqAuthClient--Funktion auf, um den Prinzipalnamen oder die Berechtigungsattribute des authentifizierten Clients abzurufen, der den Remoteprozeduraufruf ausgeführt hat. Darüber hinaus gibt RpcBindingInqAuthClient 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 weist Speicher für den zurückgegebenen ServerPrincName Parameter zu. Die Anwendung ist dafür verantwortlich, die RpcStringFree--Funktion für die zurückgegebene Argumentzeichenfolge aufzurufen.

Bei synchronen RPC-Aufrufen kann die Serveranwendung null als Wert für den parameter ClientBinding verwenden. Mit Null werden die Authentifizierungs- und Autorisierungsinformationen aus dem derzeit ausgeführten Remoteprozeduraufruf abgerufen.

Anmerkung

Der rpcdce.h-Header definiert RpcBindingInqAuthClient als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- rpcdce.h (include Rpc.h)
Library Rpcrt4.lib
DLL- Rpcrt4.dll

Siehe auch

RpcBindingSetAuthInfo-

RpcStringFree-