Fungsi CoQueryProxyBlanket (combaseapi.h)

Mengambil informasi autentikasi yang digunakan klien untuk melakukan panggilan pada proksi yang ditentukan. Ini adalah fungsi pembantu untuk IClientSecurity::QueryBlanket.

Sintaks

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

Penunjuk yang menunjukkan proksi untuk dikueri. Parameter ini tidak boleh NULL. Untuk informasi lebih lanjut, lihat bagian Keterangan.

[out, optional] pwAuthnSvc

Penunjuk ke variabel yang menerima layanan autentikasi saat ini. Ini akan menjadi nilai tunggal yang diambil dari konstanta layanan autentikasi. Parameter ini tidak boleh NULL.

[out, optional] pAuthzSvc

Pointer ke variabel yang menerima layanan otorisasi saat ini. Ini akan menjadi nilai tunggal yang diambil dari konstanta otorisasi. Jika pemanggil menentukan NULL, layanan otorisasi saat ini tidak diambil.

[out, optional] pServerPrincName

Nama utama saat ini. String akan dialokasikan oleh penerima panggilan menggunakan CoTaskMemAlloc, dan harus dibebaskan oleh pemanggil menggunakan CoTaskMemFree. Bendera EOAC_MAKE_FULLSIC tidak diterima dalam parameter pCapabilities . Untuk informasi selengkapnya tentang formulir msstd dan fullsic, lihat Nama Utama. Jika pemanggil menentukan NULL, nama utama saat ini tidak diambil.

[out, optional] pAuthnLevel

Penunjuk ke variabel yang menerima tingkat autentikasi saat ini. Ini akan menjadi nilai tunggal yang diambil dari konstanta tingkat autentikasi. Jika pemanggil menentukan NULL, tingkat autentikasi saat ini tidak diambil.

[out, optional] pImpLevel

Penunjuk ke variabel yang menerima tingkat peniruan saat ini. Ini akan menjadi nilai tunggal yang diambil dari konstanta tingkat peniruan. Jika pemanggil menentukan NULL, tingkat peniruan saat ini tidak diambil.

[out, optional] pAuthInfo

Penunjuk ke handel yang menerima identitas klien yang diteruskan ke panggilan IClientSecurity::SetBlanket terakhir (atau nilai default). Nilai default hanya valid hingga proksi dirilis. Jika pemanggil menentukan NULL, identitas klien tidak diambil. Format struktur yang dirujuk oleh handel bergantung pada layanan autentikasi. Aplikasi tidak boleh menulis atau membebaskan memori. Untuk NTLMSSP dan Kerberos, jika klien menentukan struktur dalam parameter pAuthInfo ke CoInitializeSecurity, nilai tersebut dikembalikan. Untuk Schannel, jika sertifikat untuk klien dapat diambil dari manajer sertifikat, nilai tersebut dikembalikan di sini. Jika tidak, NULL dikembalikan. Lihat RPC_AUTH_IDENTITY_HANDLE.

[out, optional] pCapabilites

Penunjuk ke variabel yang menerima kemampuan proksi. Jika pemanggil menentukan NULL, bendera kemampuan saat ini tidak diambil.

Nilai kembali

Fungsi ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, E_OUTOFMEMORY, dan S_OK.

Keterangan

CoQueryProxyBlanket dipanggil oleh klien untuk mengambil informasi autentikasi yang akan digunakan COM pada panggilan yang dilakukan dari proksi yang ditentukan. Fungsi ini merangkum urutan panggilan umum berikut (penanganan kesalahan dikecualikan):

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

Urutan ini memanggil QueryInterface pada proksi untuk mendapatkan pointer ke IClientSecurity, dan dengan pointer yang dihasilkan, memanggil IClientSecurity::QueryBlanket lalu merilis pointer.

Dalam pProxy, Anda dapat meneruskan proksi apa pun, seperti proksi yang Anda dapatkan melalui panggilan ke CoCreateInstance atau CoUnmarshalInterface, atau Anda dapat meneruskan penunjuk antarmuka. Ini bisa menjadi antarmuka apa pun. Anda tidak dapat meneruskan penunjuk ke sesuatu yang bukan proksi. Oleh karena itu, Anda tidak dapat meneruskan penunjuk ke antarmuka yang memiliki kata kunci lokal dalam definisi antarmukanya karena tidak ada proksi yang dibuat untuk antarmuka seperti itu. IUnknown adalah pengecualian untuk aturan ini.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header combaseapi.h (termasuk Objbase.h)
Pustaka Ole32.lib
DLL Ole32.dll

Lihat juga

CoQueryClientBlanket

CoSetProxyBlanket

IClientSecurity::QueryBlanket

Keamanan di COM