RpcBindingSetAuthInfo-Funktion (rpcdce.h)

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

Syntax

RPC_STATUS RpcBindingSetAuthInfo(
  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 das Authentifizierungs- und Autorisierungsinformationen angewendet werden sollen.

ServerPrincName

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

Hinweis Informationen zu den zulässigen Zielnamen für SSPs finden Sie in den Kommentaren in der InitializeSecurityContext-Dokumentation .
 

AuthnLevel

Ebene der Authentifizierung, die bei Remoteprozeduraufrufen mithilfe der Bindung ausgeführt werden soll. Eine Liste der RPC-unterstützten Authentifizierungsebenen 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 mithilfe der 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 von Binding 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. Bei Verwendung des RPC_C_AUTHN_WINNT Authentifizierungsdienst AuthIdentity 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.

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

AuthzSvc

Autorisierungsdienst, der vom Server für die entsprechende 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 der RPC_C_AUTHN_WINNT-Authentifizierungsdienst verwendet wird.

Hinweis Weitere Informationen 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 RpcBindingSetAuthInfo-Funktion auf, um ein Serverbindungshandle für authentifizierte Remoteprozeduraufrufe einzurichten. Ein Client ist nicht erforderlich, um diese Funktion aufzurufen.

Es sei denn, ein Client ruft RpcBindingSetAuthInfo auf, es werden keine Remoteprozeduraufrufe für das Bindungshandle authentifiziert. Ein Server kann RpcBindingInqAuthClient innerhalb eines Remoteprozeduraufrufs aufrufen, um festzustellen, ob dieser Aufruf authentifiziert wurde.

Die RpcBindingSetAuthInfo-Funktion akzeptiert eine Momentaufnahme der Anmeldeinformationen. 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 so lange verwaltet, wie das Bindungshandle vorhanden ist. Dies erhöht die Portabilität der Anwendung.

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 Bindungshandles beibehalten werden. Dieser Zeiger darf nur beibehalten werden, wenn nachfolgende Aufrufe von RpcBindingInqAuthInfo oder RpcBindingInqAuthInfoEx erfolgen.

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 undefinierten Ergebnissen.
 

Anforderungen

   
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 (rpc.h einschließen)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

MSMQ Security Services

RpcBindingInqAuthInfo

RpcBindingSetOption

RpcServerRegisterAuthInfo