Fungsi RpcImpersonateClient (rpcdce.h)

Utas server yang memproses panggilan prosedur jarak jauh klien dapat memanggil fungsi RpcImpersonateClient untuk meniru klien aktif.

Sintaks

RPC_STATUS RpcImpersonateClient(
  RPC_BINDING_HANDLE BindingHandle
);

Parameter

BindingHandle

Handel pengikatan pada server yang mewakili pengikatan ke klien. Server meniru klien yang ditunjukkan oleh handel ini. Jika nilai nol ditentukan, server meniru klien yang sedang dilayani oleh utas server ini.

Menampilkan nilai

Nilai Makna
RPC_S_OK
Panggilan berhasil.
RPC_S_NO_CALL_ACTIVE
Tidak ada klien yang aktif pada utas server ini.
RPC_S_CANNOT_SUPPORT
Fungsi ini tidak didukung untuk sistem operasi, transportasi, atau subsistem keamanan ini.
RPC_S_INVALID_BINDING
Handel pengikatan tidak valid.
RPC_S_WRONG_KIND_OF_BINDING
Ini adalah jenis pengikatan yang salah untuk operasi.
RPC_S_NO_CONTEXT_AVAILABLE
Server tidak memiliki izin untuk meniru klien.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Dalam aplikasi multithreaded, jika panggilan ke RpcImpersonateClient adalah dengan handel ke utas klien lain, Anda harus memanggil RpcRevertToSelfEx dengan handel ke utas tersebut untuk mengakhiri peniruan.

Semua fungsi yang meniru pemeriksaan untuk menentukan apakah pemanggil fungsi ini (Server RPC) memiliki hak istimewa SeImpersonatePrivilege. Jika penelepon memiliki SeImpersonatePrivilege, atau jika identitas yang diautentikasi sama dengan identitas pemanggil fungsi ini, peniruan yang diminta diizinkan. Jika tidak, peniruan hanya berhasil pada tingkat Identifikasi.

Windows XP/2000/NT: Hak istimewa SeImpersonatePrivilege tidak didukung sampai Windows XP dengan Paket Layanan 2 (SP2).

Keterangan Keamanan

Jika panggilan ke RpcImpersonateClient gagal karena alasan apa pun, koneksi klien tidak ditiru dan permintaan klien dibuat dalam konteks keamanan proses. Jika proses berjalan sebagai akun yang sangat istimewa, seperti LocalSystem, atau sebagai anggota grup administratif, pengguna mungkin dapat melakukan tindakan yang seharusnya tidak diizinkan. Oleh karena itu, penting untuk selalu memeriksa nilai pengembalian panggilan, dan jika gagal, ajukan kesalahan; jangan melanjutkan eksekusi permintaan klien.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header rpcdce.h
Pustaka Rpcrt4.lib
DLL Rpcrt4.dll

Lihat juga

Peniruan Klien

RpcRevertToSelf