RpcBindingSetAuthInfoW-Funktion (rpcdce.h)
Die RpcBindingSetAuthInfo-Funktion legt die Authentifizierungs- und Autorisierungsinformationen eines Bindungshandles fest.
Syntax
RPC_STATUS RpcBindingSetAuthInfoW(
RPC_BINDING_HANDLE Binding,
RPC_WSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc
);
Parameter
Binding
Serverbindungshandle, auf das Authentifizierungs- und Autorisierungsinformationen angewendet werden sollen.
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.
AuthnLevel
Authentifizierungsebene für Remoteprozeduraufrufe, die mithilfe der Bindung ausgeführt werden. Eine Liste der RPC-unterstützten Authentifizierungsstufen finden Sie in der Liste der Konstanten auf Authentifizierungsebene.
AuthnSvc
Zu verwendende Authentifizierungsdienst. Siehe Hinweis.
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
Verarbeiten Sie die Struktur, die die Anmeldeinformationen für die Authentifizierung und Autorisierung 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 .
Wenn Sie den RPC_C_AUTHN_GSS_SCHANNEL Authentifizierungsdienst auswählen, sollte der AuthIdentity-Parameter ein Zeiger auf eine SCHANNEL_CRED-Struktur (definiert in Schannel.h) sein. 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.
AuthzSvc
Autorisierungsdienst, der vom Server für die interessante Schnittstelle implementiert wird. Siehe Hinweis.
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.
Rückgabewert
Wert | Bedeutung |
---|---|
|
Der Aufruf war erfolgreich. |
|
Das Bindungshandle war ungültig. |
|
Dies war die falsche Art der Bindung für den Vorgang. |
|
Unbekannter Authentifizierungsdienst. |
Hinweise
Eine Clientanwendung ruft die RpcBindingSetAuthInfo-Funktion auf, um ein Serverbindungshandle für authentifizierte Remoteprozeduraufrufe einzurichten. Zum Aufrufen dieser Funktion ist kein Client erforderlich.
Es sei denn, ein Client ruft RpcBindingSetAuthInfo auf, es werden keine Remoteprozeduraufrufe für das Bindungsbindungshandle authentifiziert. Ein Server kann RpcBindingInqAuthClient innerhalb eines Remoteprozeduraufrufs aufrufen, um zu bestimmen, ob dieser Aufruf authentifiziert wurde.
Die RpcBindingSetAuthInfo-Funktion nimmt eine Momentaufnahme der Anmeldeinformationen an. Daher kann der für den AuthIdentity-Parameter dedizierte Arbeitsspeicher vor dem Bindungshandle freigegeben werden.
Aufgrund unterschiedlicher Anforderungen verschiedener Versionen von Microsoft RPC empfiehlt Microsoft, dass Ihre Anwendung einen Zeiger auf den AuthIdentity-Parameter beibehalten sollte, solange das Bindungshandle vorhanden ist. Dadurch wird die Portabilität der Anwendung 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
Der rpcdce.h-Header definiert RpcBindingSetAuthInfo 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für