Bagikan melalui


Metode IServerSecurity::ImpersonateClient (objidl.h)

Memungkinkan server meniru klien selama durasi panggilan.

Sintaks

HRESULT ImpersonateClient();

Mengembalikan nilai

Jika metode berhasil, nilai yang dikembalikan S_OK. Jika tidak, itu E_FAIL.

Keterangan

Biasanya, metode dijalankan pada utas yang menggunakan token akses proses. Namun, saat meniru klien, server berjalan dalam konteks keamanan klien sehingga server memiliki akses ke sumber daya yang dapat diakses klien. Ketika peniruan identitas diperlukan, server memanggil metode ImpersonateClient untuk menyebabkan token akses yang mewakili kredensial klien ditetapkan ke utas saat ini. Token utas ini digunakan untuk pemeriksaan akses. RevertToSelf memulihkan token akses utas saat ini.

Apa yang dapat dilakukan server atas nama klien tergantung pada tingkat peniruan yang ditetapkan oleh klien, yang ditentukan menggunakan salah satu konstanta tingkat peniruan. Server dapat meniru klien pada panggilan terenkripsi pada tingkat identifikasi, peniruan identitas, atau delegasi. Untuk informasi tentang tingkat peniruan ini, lihat Tingkat Peniruan.

Identitas yang disajikan ke server yang dipanggil selama peniruan tergantung pada jenis nilai penyelubungan, jika ada, yang ditetapkan oleh klien. Untuk informasi selengkapnya, lihat Cloaking.

Pada akhir setiap panggilan metode, COM akan memanggil RevertToSelf jika aplikasi tidak.

Secara tradisional, informasi peniruan tidak berlapis: Panggilan terakhir ke mekanisme peniruan apa pun mengambil alih peniruan sebelumnya. Namun, dalam model apartemen, peniruan dipertahankan selama panggilan berlapis. Dengan demikian jika server A menerima panggilan dari B, meniru, memanggil C, menerima panggilan dari D, meniru, mengembalikan, dan menerima balasan dari C, token peniruan akan diatur kembali ke B, bukan A.

Untuk informasi tentang menggunakan peniruan identitas dengan panggilan asinkron, lihat Peniruan Identitas dan Panggilan Asinkron.

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 objidl.h (termasuk ObjIdl.h)

Lihat juga

CoImpersonateClient

IServerSecurity