CoQueryClientBlanket-Funktion (combaseapi.h)
Wird vom Server aufgerufen, um mehr über den Client zu erfahren, der die Methode aufgerufen hat, die im aktuellen Thread ausgeführt wird. Dies ist eine Hilfsfunktion für IServerSecurity::QueryBlanket.
Syntax
HRESULT CoQueryClientBlanket(
[out, optional] DWORD *pAuthnSvc,
[out, optional] DWORD *pAuthzSvc,
[out, optional] LPOLESTR *pServerPrincName,
[out, optional] DWORD *pAuthnLevel,
[out, optional] DWORD *pImpLevel,
[out, optional] RPC_AUTHZ_HANDLE *pPrivs,
[in, out, optional] DWORD *pCapabilities
);
Parameter
[out, optional] pAuthnSvc
Ein Zeiger auf eine Variable, die den aktuellen Authentifizierungsdienst empfängt. Dies ist ein einzelner Wert aus den Authentifizierungsdienstkonstanten. Wenn der Aufrufer NULL angibt, wird der aktuelle Authentifizierungsdienst nicht abgerufen.
[out, optional] pAuthzSvc
Ein Zeiger auf eine Variable, die den aktuellen Autorisierungsdienst empfängt. Dies ist ein einzelner Wert aus den Autorisierungskonstanten. Wenn der Aufrufer NULL angibt, wird der aktuelle Autorisierungsdienst nicht abgerufen.
[out, optional] pServerPrincName
Der aktuelle Prinzipalname. Die Zeichenfolge wird vom Aufgerufenen mithilfe von CoTaskMemAlloc zugeordnet und muss vom Aufrufer mithilfe von CoTaskMemFree freigegeben werden. Standardmäßig weisen Schannel-Prinzipalnamen das msstd-Format auf. Das fullsic-Formular wird zurückgegeben, wenn EOAC_MAKE_FULLSIC im pCapabilities-Parameter angegeben ist. Weitere Informationen zu den Formularen msstd und fullsic finden Sie unter Prinzipalnamen. Wenn der Aufrufer NULL angibt, wird der aktuelle Prinzipalname nicht abgerufen.
[out, optional] pAuthnLevel
Ein Zeiger auf eine Variable, die die aktuelle Authentifizierungsebene empfängt. Dies ist ein einzelner Wert aus den Konstanten der Authentifizierungsebene. Wenn der Aufrufer NULL angibt, wird die aktuelle Authentifizierungsebene nicht abgerufen.
[out, optional] pImpLevel
Dieser Parameter muss NULL sein.
[out, optional] pPrivs
Ein Zeiger auf ein Handle, das die Berechtigungsinformationen für die Clientanwendung empfängt. Das Format der Struktur, auf die sich das Handle bezieht, hängt vom Authentifizierungsdienst ab. Die Anwendung sollte den Arbeitsspeicher nicht schreiben oder freigeben. Die Informationen sind nur für die Dauer des aktuellen Aufrufs gültig. Für NTLMSSP und Kerberos ist dies eine Zeichenfolge, die den Clientprinzipal identifiziert. Für Schannel ist dies eine CERT_CONTEXT Struktur, die das Zertifikat des Clients darstellt. Wenn der Client über kein Zertifikat verfügt, wird NULL zurückgegeben. Wenn der Aufrufer NULL angibt, werden die aktuellen Berechtigungsinformationen nicht abgerufen. Siehe RPC_AUTHZ_HANDLE.
[in, out, optional] pCapabilities
Ein Zeiger zum Zurückgeben von Flags, die die Funktionen des Aufrufs angeben. Um die Rückgabe des Prinzipalnamens in vollständiger Form anzufordern, wenn Schannel der Authentifizierungsdienst ist, kann der Aufrufer das flag EOAC_MAKE_FULLSIC in diesem Parameter festlegen. Wenn der Aufrufer NULL angibt, werden die aktuellen Funktionen nicht abgerufen.
Rückgabewert
Diese Funktion kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und S_OK zurückgeben.
Hinweise
CoQueryClientBlanket wird vom Server aufgerufen, um Sicherheitsinformationen über den Client abzurufen, der die methode aufgerufen hat, die im aktuellen Thread ausgeführt wird. Diese Funktion kapselt die folgende Sequenz von häufigen Aufrufen (Fehlerbehandlung ausgeschlossen):
CoGetCallContext(IID_IServerSecurity, (void**)&pss);
pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName,
pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
pss->Release();
Diese Sequenz ruft CoGetCallContext auf, um einen Zeiger auf IServerSecurity abzurufen, und ruft mit dem resultierenden Zeiger IServerSecurity::QueryBlanket auf und gibt dann den Zeiger frei.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | combaseapi.h (include Objbase.h) |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |