Freigeben über


RpcBindingSetAuthInfoA-Funktion (rpcdce.h)

Die RpcBindingSetAuthInfo--Funktion legt die Authentifizierungs- und Autorisierungsinformationen eines Bindungshandle fest.

Syntax

RPC_STATUS RpcBindingSetAuthInfoA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc
);

Parameter

Binding

Serverbindungshandle, auf die Authentifizierungs- und Autorisierungsinformationen angewendet werden sollen.

ServerPrincName

Zeigen Sie auf den erwarteten Prinzipalnamen des Servers, auf den von Bindingverwiesen wird. Der Inhalt des Namens und seiner Syntax wird vom verwendeten Authentifizierungsdienst definiert.

Hinweis Für den Satz zulässiger Zielnamen für SSPs lesen Sie bitte die Kommentare in der InitializeSecurityContext Dokumentation.
 

AuthnLevel

Authentifizierungsebene für Remoteprozeduraufrufe, die mit Bindingausgeführt werden. Eine Liste der RPC-unterstützten Authentifizierungsstufen finden Sie in der Liste der Authentication-Level Konstanten.

AuthnSvc

Der zu verwendende Authentifizierungsdienst. Siehe Hinweis.

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

Wenn RPC_C_AUTHN_DEFAULT angegeben ist, verwendet die RPC-Laufzeitbibliothek den RPC_C_AUTHN_WINNT-Authentifizierungsdienst für Remoteprozeduraufrufe, die mit Bindingausgeführt werden.

AuthIdentity

Behandeln Sie die Struktur, die die Authentifizierungs- und Autorisierungsanmeldeinformationen des Clients enthält, die für den ausgewählten Authentifizierungs- und Autorisierungsdienst geeignet sind. Bei Verwendung des RPC_C_AUTHN_WINNT-Authentifizierungsdiensts sollte AuthIdentity- ein Zeiger auf eine SEC_WINNT_AUTH_IDENTITY-Struktur sein (definiert in "Rpcdce.h"). 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 sein (definiert in Schannel.h). 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.

Hinweis Beim Auswählen des RPC_C_AUTHN_GSS_SCHANNEL Authentifizierungsdiensts kann der Parameter AuthIdentity auch ein Zeiger auf eine SCH_CRED Struktur sein. In Windows XP und späteren Versionen von Windows ist jedoch die einzige zulässige Struktur, die als AuthIdentity Parameter für den RPC_C_AUTHN_GSS_SCHANNEL-Authentifizierungsdienst übergeben wird, die SCHANNEL_CRED Struktur.
 

AuthzSvc

Autorisierungsdienst, der vom Server für die Schnittstelle von Interesse implementiert wird. Siehe Hinweis.

Die Gültigkeit und Vertrauenswürdigkeit von Autorisierungsdaten, wie alle Anwendungsdaten, hängt von dem ausgewählten Authentifizierungsdienst und der Authentifizierungsstufe ab. Dieser Parameter wird ignoriert, wenn der RPC_C_AUTHN_WINNT-Authentifizierungsdienst verwendet wird.

Hinweis Weitere Informationen finden Sie unter Authentication-Service Konstanten.
 

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

Bemerkungen

Eine Clientanwendung ruft die RpcBindingSetAuthInfo--Funktion auf, um ein Serverbindungshandle für authentifizierte Remoteprozeduraufrufe einzurichten. Zum Aufrufen dieser Funktion ist kein Client erforderlich.

Außer wenn ein Client RpcBindingSetAuthInfoaufruft, werden keine Remoteprozeduraufrufe für das Binding Bindungshandle authentifiziert. Ein Server kann RpcBindingInqAuthClient- innerhalb eines Remoteprozeduraufrufs aufrufen, um festzustellen, ob dieser Aufruf authentifiziert wurde.

Die RpcBindingSetAuthInfo--Funktion erstellt eine Momentaufnahme der Anmeldeinformationen. Daher kann der speicher, der dem AuthIdentity Parameter zugeordnet ist, 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, solange der 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 nicht für die Lebensdauer des Bindungshandle beibehalten werden. Dieser Zeiger darf nur beibehalten werden, wenn nachfolgende Aufrufe von RpcBindingInqAuthInfo- oder RpcBindingInqAuthInfoEx- erfolgen.

Hinweis Die funktion RpcBindingSetAuthInfo funktion darf nicht für ein Bindungshandle aufgerufen werden, während ein RPC-Aufruf auf demselben Handle ausgeführt wird. Dadurch werden nicht definierte Ergebnisse erzeugt.
 

Anmerkung

Der rpcdce.h-Header definiert RpcBindingSetAuthInfo 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 [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- rpcdce.h (include Rpc.h)
Library Rpcrt4.lib
DLL- Rpcrt4.dll

Siehe auch

MSMQ Security Services

RpcBindingInqAuthInfo-

RpcBindingSetOption

RpcServerRegisterAuthInfo-