Fungsi RpcGetAuthorizationContextForClient (rpcasync.h)
Fungsi RpcGetAuthorizationContextForClient mengembalikan konteks Authz untuk klien RPC yang dapat digunakan dengan fungsi Authz untuk autentikasi berkinerja tinggi. Didukung hanya untuk urutan protokol ncalrpc dan ncacn_* .
Sintaks
RPC_STATUS RpcGetAuthorizationContextForClient(
[in, optional] RPC_BINDING_HANDLE ClientBinding,
[in] BOOL ImpersonateOnReturn,
[in] PVOID Reserved1,
[in, optional] PLARGE_INTEGER pExpirationTime,
[in] LUID Reserved2,
[in] DWORD Reserved3,
[in] PVOID Reserved4,
[out] PVOID *pAuthzClientContext
);
Parameter
[in, optional] ClientBinding
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.
[in] ImpersonateOnReturn
Mengarahkan fungsi untuk meniru klien saat dikembalikan, lalu mengembalikan struktur AUTHZ_CLIENT_CONTEXT_HANDLE . Atur parameter ini ke bukan nol untuk meniru klien. Lihat Keterangan.
[in] Reserved1
Dicadangkan. Harus null.
[in, optional] pExpirationTime
Arahkan ke tanggal dan waktu kedaluwarsa token. Jika tidak ada nilai yang diteruskan, token tidak pernah kedaluwarsa. Waktu kedaluwarsa saat ini tidak diberlakukan.
[in] Reserved2
Dicadangkan. Harus berupa struktur LUID dengan setiap anggota diatur ke nol.
[in] Reserved3
Dicadangkan. Harus nol.
[in] Reserved4
Dicadangkan. Harus null.
[out] pAuthzClientContext
Arahkan ke struktur AUTHZ_CLIENT_CONTEXT_HANDLE yang dapat diteruskan langsung ke fungsi Authz. Jika fungsi gagal, konten parameter ini tidak terdefinisi.
Mengembalikan nilai
Nilai | Makna |
---|---|
|
Panggilan berhasil. |
|
Parameter yang dipesan berbeda dari nilai yang ditentukan. |
|
Klien RPC belum berhasil diautentikasi. |
Kegagalan mengembalikan kode kesalahan RPC_S_*, atau kode kesalahan Windows. Informasi kesalahan yang diperluas tersedia melalui mekanisme pengambilan kode kesalahan RPC standar atau Windows. Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
Keterangan
Fungsi RpcGetAuthorizationContextForClient dapat dipanggil dalam konteks yang sama dengan fungsi RpcImpersonateClient . Semua fungsi yang meniru pemeriksaan untuk menentukan apakah pemanggil memiliki hak istimewa SeImpersonatePrivilege. Jika pemanggil memiliki SeImpersonatePrivilege, atau jika identitas yang diautentikasi sama dengan pemanggil, peniruan yang diminta diizinkan. Jika tidak, peniruan hanya berhasil pada tingkat Identifikasi.
Catatan Hak istimewa SeImpersonatePrivilege tidak didukung sampai Windows XP dengan Paket Layanan 2 (SP2).
Fungsi RpcGetAuthorizationContextForClient didukung untuk urutan protokol ncalrpc dan ncacn_*saja, dan tidak didukung pada pipa bernama yang hanya menerapkan keamanan transportasi.
Fungsi RpcGetAuthorizationContextForClient aman untuk utas, dan dapat dipanggil dari beberapa utas. Konteks yang dikembalikan dalam pAuthzClientContext tidak bergantung pada panggilan fungsi, dan dapat digunakan berikutnya untuk penyelesaiannya. Pemanggil bertanggung jawab untuk membebaskan konteks dengan panggilan ke fungsi RpcFreeAuthorizationContext .
Peningkatan performa yang diamati dengan menggunakan fungsi RpcGetAuthorizationContextForClient , jika dibandingkan dengan metode peniruan identitas sebelumnya atau pemeriksaan akses atau kembali ke diri sendiri, bergantung pada faktor-faktor berikut:
- Berapa kali fungsi dipanggil untuk identitas klien tertentu.
- Urutan protokol dan pelacakan identitas berlaku untuk panggilan fungsi.
Memanggil melalui ncalrpc dengan pelacakan identitas statis menjalankan fungsi RpcGetAuthorizationContextForClient lebih cepat daripada panggilan melalui ncalrpc dengan pelacakan identitas dinamis. Panggilan melalui ncacn_* dijalankan dengan kecepatan yang kira-kira sama untuk urutan protokol tertentu, terlepas dari apakah pelacakan identitas statis atau dinamis.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | rpcasync.h (termasuk Rpc.h) |
Pustaka | Rpcrt4.lib |
DLL | Rpcrt4.dll |