LSA_GET_CREDENTIALS fungsi panggilan balik (ntsecpkg.h)
Mengambil kredensial yang terkait dengan sesi masuk.
Fungsi ini tidak digunakan oleh paket autentikasi yang lebih baru, seperti Kerberos.
Sintaks
LSA_GET_CREDENTIALS LsaGetCredentials;
NTSTATUS LsaGetCredentials(
[in] PLUID LogonId,
[in] ULONG AuthenticationPackage,
[in, out] PULONG QueryContext,
[in] BOOLEAN RetrieveAllCredentials,
[in, out] PLSA_STRING PrimaryKeyValue,
[out] PULONG PrimaryKeyLength,
[out] PLSA_STRING Credentials
)
{...}
Parameter
[in] LogonId
Pointer ke struktur LUID yang berisi ID sesi dari sesi masuk tempat kredensial akan diambil.
[in] AuthenticationPackage
ID paket autentikasi dari paket autentikasi panggilan. Paket autentikasi hanya boleh mengambil kredensial mereka sendiri.
[in, out] QueryContext
Arahkan ke nilai LONG yang tidak ditandatangani yang digunakan di seluruh panggilan berturut-turut untuk mengambil beberapa kredensial. Pertama kali fungsi ini digunakan, nilai yang ditujukkan oleh argumen ini harus nol. Setelah itu, nilai ini akan diperbarui untuk memungkinkan pengambilan berlanjut di tempat terakhirnya. Oleh karena itu, nilai ini tidak boleh diubah sampai semua kredensial operasi kueri tertentu telah diambil.
[in] RetrieveAllCredentials
Menunjukkan apakah semua kredensial untuk sesi masuk yang ditentukan harus diambil (TRUE), atau hanya yang cocok dengan PrimaryKeyValue (FALSE) yang ditentukan.
[in, out] PrimaryKeyValue
Parameter ini melayani dua tujuan. Jika parameter RetrieveAllCredentialsFALSE, string ini berisi nilai yang akan digunakan sebagai kunci pencarian utama. Dalam hal ini, hanya kredensial milik sesi masuk yang benar dengan kunci pencarian utama yang cocok dengan nilai ini yang akan diambil.
Jika RetrieveAllCredentialsTRUE, nilai string ini pada input diabaikan dan kunci pencarian utama dari setiap kredensial yang diambil dikembalikan dalam string ini.
[out] PrimaryKeyLength
Jika parameter RetrieveAllCredentialsTRUE, parameter ini menerima panjang yang diperlukan untuk menyimpan string PrimaryKeyValue .
[out] Credentials
Penunjuk ke buffer yang menerima kredensial yang diambil. Hanya satu kredensial yang diambil untuk setiap panggilan yang dilakukan. Kredensial dikembalikan dalam buffer yang dialokasikan fungsi dengan memanggil fungsi AllocateLsaHeap . Pemanggil bertanggung jawab untuk membebaskan buffer Kredensial ketika tidak lagi diperlukan, dengan memanggil FreeLsaHeap.
Nilai kembali
Jika fungsi berhasil, fungsi mengembalikan kode NTSTATUS, STATUS_SUCCESS, yang menunjukkan bahwa kredensial berhasil diambil.
Jika fungsi gagal, nilai yang dikembalikan adalah kode NTSTATUS, yang dapat menjadi salah satu nilai berikut atau salah satu Nilai Pengembalian Fungsi Kebijakan LSA.
Menampilkan kode | Deskripsi |
---|---|
|
Tidak ada lagi kredensial yang tersedia. Jika kode ini dikembalikan pada panggilan pertama, tidak ada kredensial yang cocok dengan kriteria pemilihan. |
|
String yang disediakan untuk menerima PrimaryKeyValue tidak cukup besar untuk menyimpan data. Dalam hal ini, tidak ada data yang diambil, dan nilai QueryContext tidak dimodifikasi. Ini memungkinkan panggilan yang sama untuk dilakukan lagi dengan buffer string yang lebih besar. |
|
Sesi masuk yang ditentukan tidak dapat ditemukan. |
Fungsi LsaNtStatusToWinError mengonversi kode NTSTATUS ke kode kesalahan Windows.
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 | ntsecpkg.h |