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
RPC_S_OK
Panggilan berhasil.
RERROR_INVALID_PARAMETER
Parameter yang dipesan berbeda dari nilai yang ditentukan.
RPC_S_NO_CONTEXT_AVAILABLE
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.
Panggilan berikutnya ke fungsi RpcGetAuthorizationContextForClient untuk identitas klien yang sama memiliki biaya yang sangat rendah. Efisiensi ini dicapai dengan hasil dari pertanyaan sebelumnya yang di-cache, dan respons dikembalikan dari cache jika memungkinkan.

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

Lihat juga

Fungsi Access Control Klien/Server

LUID

Nilai Pengembalian RPC

RpcFreeAuthorizationContext

RpcImpersonateClient