Fungsi ImpersonateNamedPipeClient (namedpipeapi.h)

Fungsi ImpersonateNamedPipeClient meniru aplikasi klien pipa bernama.

Sintaks

BOOL ImpersonateNamedPipeClient(
  [in] HANDLE hNamedPipe
);

Parameter

[in] hNamedPipe

Handel ke pipa bernama.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Fungsi ImpersonateNamedPipeClient memungkinkan akhir server dari pipa bernama untuk meniru akhir klien. Ketika fungsi ini dipanggil, sistem file named-pipe mengubah utas proses panggilan untuk mulai meniru konteks keamanan pesan terakhir yang dibaca dari pipa. Hanya akhir server dari pipa yang dapat memanggil fungsi ini.

Server dapat memanggil fungsi RevertToSelf ketika peniruan selesai.

Penting Jika fungsi ImpersonateNamedPipeClient gagal, klien tidak ditiru, dan semua permintaan klien berikutnya dibuat dalam konteks keamanan proses yang memanggil fungsi. Jika proses panggilan berjalan sebagai akun istimewa, proses ini dapat melakukan tindakan yang tidak diizinkan untuk dilakukan klien. Untuk menghindari risiko keamanan, proses panggilan harus selalu memeriksa nilai pengembalian. Jika nilai yang dikembalikan menunjukkan bahwa panggilan fungsi gagal, tidak ada permintaan klien yang harus dijalankan.
 
Semua fungsi peniruan, termasuk ImpersonateNamedPipeClient memungkinkan peniruan yang diminta jika salah satu hal berikut ini benar:
  • Tingkat peniruan token yang diminta kurang dari SecurityImpersonation, seperti SecurityIdentification atau SecurityAnonymous.
  • Pemanggil memiliki hak istimewa SeImpersonatePrivilege .
  • Proses (atau proses lain dalam sesi masuk pemanggil) membuat token menggunakan kredensial eksplisit melalui fungsi LogonUser atau LsaLogonUser .
  • Identitas terautentikasi sama dengan pemanggil.
Windows XP dengan SP1 dan yang lebih lama: Hak istimewa SeImpersonatePrivilege tidak didukung.

Contoh

Untuk contoh yang menggunakan fungsi ini, lihat Memverifikasi Akses Klien dengan ACL.

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 namedpipeapi.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

Fungsi otorisasi

Gambaran Umum Access Control Klien/Server

DdeImpersonateClient

DuplikatToken

Kembalikan KeSelf