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