Bagikan melalui


Metode ISecurityProperty::GetDirectCallerSID (comsvcs.h)

Mengambil pengidentifikasi keamanan dari proses eksternal yang memanggil metode yang saat ini dijalankan. Anda juga dapat memperoleh informasi ini menggunakan ISecurityCallContext.

Sintaks

HRESULT GetDirectCallerSID(
  [out] PSID *pSID
);

Parameter

[out] pSID

Referensi ke ID keamanan proses dari mana metode saat ini dipanggil.

Nilai kembali

Metode ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, dan E_FAIL, serta nilai berikut.

Menampilkan kode Deskripsi
S_OK
ID keamanan proses yang memanggil metode saat ini dikembalikan dalam parameter pSid.
CONTEXT_E_NOCONTEXT
Objek saat ini tidak memiliki konteks yang terkait dengannya karena komponen tidak diimpor ke dalam aplikasi atau objek tidak dibuat dengan salah satu metode COM+ CreateInstance.

Keterangan

Gunakan metode GetDirectCallerSID untuk menentukan ID keamanan proses yang memanggil metode eksekusi objek saat ini. Keamanan diberlakukan di seluruh batas proses. Ini berarti bahwa ID keamanan yang dikembalikan oleh GetDirectCallerSID adalah ID keamanan yang terkait dengan proses yang dipanggil ke dalam proses di mana objek saat ini berjalan, belum tentu pemanggil langsung ke dalam objek itu sendiri. Jika objek memanggil ke objek lain dalam proses yang sama, ketika objek kedua memanggil GetDirectCallerSID , objek tersebut mendapatkan ID keamanan penelepon paling langsung di luar batas prosesnya sendiri, bukan ID keamanan objek yang langsung dipanggil ke dalamnya.

Skenario berikut mengilustrasikan fungsionalitas metode GetDirectCallerSID :

  • Proses dasar yang berjalan di Server A, sebagai pengguna A, memanggil Objek X di Server B, berjalan sebagai pengguna B. Kemudian Objek X memanggil ke Objek Y, berjalan di Server C. Jika Object Y memanggil GetDirectCallerSID, ID keamanan pengguna B dikembalikan.
  • Proses dasar, berjalan di Server A sebagai pengguna A, memanggil Objek X di Server B, berjalan sebagai pengguna B. Kemudian Objek X memanggil ke Objek Y, berjalan dalam proses yang sama dengan Object X, juga di Server B. Ketika Object Y memanggil GetDirectCallerSID, ID keamanan pengguna A dikembalikan, bukan ID keamanan pengguna B.
Anda harus memanggil ISecurityProperty::ReleaseSID pada ID keamanan setelah selesai menggunakannya.

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 comsvcs.h

Lihat juga

ISecurityProperty