Freigeben über


RpcBindingSetAuthInfoExA-Funktion (rpcdce.h)

Die RpcBindingSetAuthInfoEx-Funktion legt die Authentifizierungs-, Autorisierungs- und Sicherheitsqualitätsinformationen eines Bindungshandles fest.

Syntax

RPC_STATUS RpcBindingSetAuthInfoExA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc,
  RPC_SECURITY_QOS         *SecurityQos
);

Parameter

Binding

Serverbindungshandle, in dem Authentifizierungs- und Autorisierungsinformationen festgelegt sind.

ServerPrincName

Zeiger auf den erwarteten Prinzipalnamen des Servers, auf den von Bindung verwiesen wird. Der Inhalt des Namens und seine Syntax werden vom verwendeten Authentifizierungsdienst definiert.

Hinweis Den Satz zulässiger Zielnamen für SSPs finden Sie in den Kommentaren in der InitializeSecurityContext-Dokumentation .
 

AuthnLevel

Authentifizierungsebene für Remoteprozeduraufrufe, die mithilfe der Bindung ausgeführt werden. Eine Liste der RPC-unterstützten Authentifizierungsstufen finden Sie unter Konstanten auf Authentifizierungsebene.

AuthnSvc

Zu verwendende Authentifizierungsdienst.

Geben Sie RPC_C_AUTHN_NONE an, um die Authentifizierung für Remoteprozeduraufrufe mit Bindung zu deaktivieren.

Wenn RPC_C_AUTHN_DEFAULT angegeben ist, verwendet die RPC-Laufzeitbibliothek den RPC_C_AUTHN_WINNT-Authentifizierungsdienst für Remoteprozeduraufrufe, die mithilfe der Bindung ausgeführt werden.

AuthIdentity

Handle für die Struktur, die die Authentifizierungs- und Autorisierungsanmeldeinformationen des Clients enthält, die für den ausgewählten Authentifizierungs- und Autorisierungsdienst geeignet sind.

Wenn Sie den RPC_C_AUTHN_WINNT Authentifizierungsdienst AuthIdentity verwenden, sollte ein Zeiger auf eine SEC_WINNT_AUTH_IDENTITY-Struktur (definiert in Rpcdce.h) sein. Kerberos- und Negotiate-Authentifizierungsdienste verwenden auch die SEC_WINNT_AUTH_IDENTITY-Struktur .

Geben Sie einen NULL-Wert an, um den Sicherheitsanmeldungskontext für den aktuellen Adressraum zu verwenden. Übergeben Sie den Wert RPC_C_NO_CREDENTIALS, um einen anonymen Anmeldekontext zu verwenden. Beachten Sie, dass RPC_C_NO_CREDENTIALS nur gültig ist, wenn RPC_C_AUTHN_GSS_SCHANNEL als Authentifizierungsdienst ausgewählt ist.

AuthzSvc

Autorisierungsdienst, der vom Server für die interessante Schnittstelle implementiert wird. Die Gültigkeit und Vertrauenswürdigkeit von Autorisierungsdaten hängt wie alle Anwendungsdaten vom ausgewählten Authentifizierungsdienst und der ausgewählten Authentifizierungsebene ab. Dieser Parameter wird ignoriert, wenn sie den RPC_C_AUTHN_WINNT-Authentifizierungsdienst verwenden. Siehe Hinweis.

SecurityQos

Zeiger auf die RPC_SECURITY_QOS-Struktur , die die Dienstqualität der Sicherheit definiert.

Hinweis Eine Liste der von RPC unterstützten Authentifizierungsdienste finden Sie unter Authentication-Service Constants.
 

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_UNKNOWN_AUTHN_SERVICE
Unbekannter Authentifizierungsdienst.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Eine Clientanwendung ruft die RpcBindingSetAuthInfoEx-Funktion auf, um ein Serverbindungshandle für authentifizierte Remoteprozeduraufrufe einzurichten. Diese Funktion bietet die Möglichkeit, Sicherheitsqualitätsinformationen für das Bindungshandle festzulegen. Andernfalls ist sie mit RpcBindingSetAuthInfo identisch.

Es sei denn, ein Client ruft RpcBindingSetAuthInfoEx auf, alle Remoteprozeduraufrufe für Bindung sind nicht authentifiziert. Zum Aufrufen dieser Funktion ist kein Client erforderlich.

Die RpcBindingSetAuthInfoEx-Funktion nimmt eine Momentaufnahme der Anmeldeinformationen an. Daher kann der für den AuthIdentity-Parameter dedizierte Arbeitsspeicher vor dem Bindungshandle freigegeben werden. Die Ausnahme ist, wenn Ihre Anwendung RpcBindingSetAuthInfoEx mit RPC_C_QOS_IDENTITY_DYNAMIC verwendet und auch einen Wert ohne NULL für AuthIdentity angibt.

Hinweis Die RpcBindingSetAuthInfo-Funktion darf nicht für ein Bindungshandle aufgerufen werden, während ein RPC-Aufruf für dasselbe Handle ausgeführt wird. Dies führt zu nicht definierten Ergebnissen.
 
Aufgrund der unterschiedlichen Anforderungen verschiedener Versionen von Microsoft RPC empfiehlt Microsoft, dass eine Anwendung einen Zeiger auf den AuthIdentity-Parameter verwaltet, solange das Bindungshandle vorhanden ist. Dadurch wird die Portabilität der Anwendungen erhöht.

Windows Server 2003 mit SP1 und Windows XP mit SP2: Für Windows XP SP2 und Windows Server 2003 SP1 muss der Zeiger auf den AuthIdentity-Parameter für die Lebensdauer des Bindungshandles nicht beibehalten werden. Dieser Zeiger darf nur beibehalten werden, wenn nachfolgende Aufrufe von RpcBindingInqAuthInfo oder RpcBindingInqAuthInfoEx erfolgen.

Hinweis Die ncalrpc-Protokollsequenz unterstützt nur RPC_C_AUTHN_WINNT, unterstützt jedoch die gegenseitige Authentifizierung. Geben Sie einen SPN an, und fordern Sie dazu die gegenseitige Authentifizierung über den SecurityQOS-Parameter an.
 

Hinweis

Der rpcdce.h-Header definiert RpcBindingSetAuthInfoEx als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile rpcdce.h (include Rpc.h)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo