CoQueryProxyBlanket-Funktion (combaseapi.h)

Ruft die Authentifizierungsinformationen ab, die der Client zum Tätigen von Aufrufen des angegebenen Proxys verwendet. Dies ist eine Hilfsfunktion für IClientSecurity::QueryBlanket.

Syntax

HRESULT CoQueryProxyBlanket(
  [in]            IUnknown                 *pProxy,
  [out, optional] DWORD                    *pwAuthnSvc,
  [out, optional] DWORD                    *pAuthzSvc,
  [out, optional] LPOLESTR                 *pServerPrincName,
  [out, optional] DWORD                    *pAuthnLevel,
  [out, optional] DWORD                    *pImpLevel,
  [out, optional] RPC_AUTH_IDENTITY_HANDLE *pAuthInfo,
  [out, optional] DWORD                    *pCapabilites
);

Parameter

[in] pProxy

Ein Zeiger, der den abzufragenden Proxy angibt. Dieser Parameter darf nicht NULL sein. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

[out, optional] pwAuthnSvc

Ein Zeiger auf eine Variable, die den aktuellen Authentifizierungsdienst empfängt. Dies ist ein einzelner Wert aus den Authentifizierungsdienstkonstanten. Dieser Parameter darf nicht NULL sein.

[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 Angerufenen mithilfe von CoTaskMemAlloc zugewiesen und muss vom Aufrufer mithilfe von CoTaskMemFree freigegeben werden. Das EOAC_MAKE_FULLSIC-Flag wird im pCapabilities-Parameter nicht akzeptiert. Weitere Informationen zu den msstd- und fullsic-Formularen 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

Ein Zeiger auf eine Variable, die die aktuelle Identitätswechselebene empfängt. Dies ist ein einzelner Wert aus den Konstanten der Identitätswechselebene. Wenn der Aufrufer NULL angibt, wird die aktuelle Identitätswechselebene nicht abgerufen.

[out, optional] pAuthInfo

Ein Zeiger auf ein Handle, das die Identität des Clients empfängt, die an den letzten IClientSecurity::SetBlanket-Aufruf (oder den Standardwert) übergeben wurde. Standardwerte sind nur gültig, bis der Proxy freigegeben wird. Wenn der Aufrufer NULL angibt, wird die Clientidentität nicht abgerufen. Das Format der Struktur, auf die sich das Handle bezieht, hängt vom Authentifizierungsdienst ab. Die Anwendung sollte den Arbeitsspeicher nicht schreiben oder freigeben. Wenn der Client für NTLMSSP und Kerberos eine Struktur im pAuthInfo-Parameter für CoInitializeSecurity angegeben hat, wird dieser Wert zurückgegeben. Wenn für Schannel ein Zertifikat für den Client aus dem Zertifikat-Manager abgerufen werden könnte, wird dieser Wert hier zurückgegeben. Andernfalls wird NULL zurückgegeben. Siehe RPC_AUTH_IDENTITY_HANDLE.

[out, optional] pCapabilites

Ein Zeiger auf eine Variable, die die Funktionen des Proxys empfängt. Wenn der Aufrufer NULL angibt, werden die aktuellen Funktionsflags nicht abgerufen.

Rückgabewert

Diese Funktion kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und S_OK zurückgeben.

Hinweise

CoQueryProxyBlanket wird vom Client aufgerufen, um die Authentifizierungsinformationen abzurufen, die COM bei Aufrufen des angegebenen Proxys verwendet. Diese Funktion kapselt die folgende Sequenz allgemeiner Aufrufe (Fehlerbehandlung ausgeschlossen):

pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(
    pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities
  );
pcs->Release();

Diese Sequenz ruft QueryInterface auf dem Proxy auf, um einen Zeiger auf IClientSecurity abzurufen, und ruft mit dem resultierenden Zeiger IClientSecurity::QueryBlanket auf und gibt den Zeiger dann frei.

In pProxy können Sie einen beliebigen Proxy übergeben, z. B. einen Proxy, den Sie über einen Aufruf von CoCreateInstance oder CoUnmarshalInterface erhalten, oder Sie können einen Schnittstellenzeiger übergeben. Es kann sich um eine beliebige Schnittstelle sein. Sie können keinen Zeiger auf etwas übergeben, das kein Proxy ist. Daher können Sie keinen Zeiger an eine Schnittstelle übergeben, die den lokalen Schlüsselwort (keyword) in ihrer Schnittstellendefinition enthält, da kein Proxy für eine solche Schnittstelle erstellt wird. IUnknown ist die Ausnahme dieser Regel.

Anforderungen

Anforderung Wert
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

Weitere Informationen

CoQueryClientBlanket

CoSetProxyBlanket

IClientSecurity::QueryBlanket

Sicherheit in COM