LSA_AP_LOGON_USER_EX2 fungsi panggilan balik (ntsecpkg.h)
Digunakan untuk mengautentikasi upaya masuk pengguna pada masuk awal pengguna. Sesi masuk baru dibuat untuk pengguna, dan informasi validasi untuk pengguna dikembalikan.
Sintaks
LSA_AP_LOGON_USER_EX2 LsaApLogonUserEx2;
NTSTATUS LsaApLogonUserEx2(
[in] PLSA_CLIENT_REQUEST ClientRequest,
[in] SECURITY_LOGON_TYPE LogonType,
[in] PVOID ProtocolSubmitBuffer,
[in] PVOID ClientBufferBase,
[in] ULONG SubmitBufferSize,
[out] PVOID *ProfileBuffer,
[out] PULONG ProfileBufferSize,
[out] PLUID LogonId,
[out] PNTSTATUS SubStatus,
[out] PLSA_TOKEN_INFORMATION_TYPE TokenInformationType,
[out] PVOID *TokenInformation,
[out] PUNICODE_STRING *AccountName,
[out] PUNICODE_STRING *AuthenticatingAuthority,
[out] PUNICODE_STRING *MachineName,
[out] PSECPKG_PRIMARY_CRED PrimaryCredentials,
[out] PSECPKG_SUPPLEMENTAL_CRED_ARRAY *SupplementalCredentials
)
{...}
Parameter
[in] ClientRequest
Penunjuk ke buffer buram LSA_CLIENT_REQUEST yang mewakili permintaan klien.
[in] LogonType
SECURITY_LOGON_TYPE nilai yang mengidentifikasi jenis masuk.
[in] ProtocolSubmitBuffer
Buffer yang menyediakan informasi autentikasi khusus untuk paket autentikasi.
[in] ClientBufferBase
Buffer yang menyediakan alamat dalam proses klien tempat informasi autentikasi adalah residen. Ini mungkin diperlukan untuk memperbaiki penunjuk apa pun dalam buffer informasi autentikasi.
[in] SubmitBufferSize
Nilai ULONG yang menunjukkan ukuran, dalam byte, dari buffer informasi autentikasi.
[out] ProfileBuffer
Pointer yang menerima alamat buffer profil dalam proses klien. Paket autentikasi bertanggung jawab untuk mengalokasikan ProfileBuffer dalam proses klien dengan memanggil fungsi AllocateClientBuffer . Namun, jika LSA kemudian mengalami kesalahan yang mencegah keberhasilan masuk, maka LSA akan mengurus pemberhentian buffer ini.
Isi buffer ini ditentukan oleh paket autentikasi. LSA tidak mengubah buffer ini; itu hanya mengembalikan nilai ke fungsi LsaLogonUser .
[out] ProfileBufferSize
Penunjuk ke ULONG yang menerima ukuran buffer ProfileBuffer .
[out] LogonId
Penunjuk ke variabel LUID yang menerima ID masuk baru yang secara unik mengidentifikasi sesi masuk ini. Paket autentikasi bertanggung jawab untuk mengalokasikan LUID ini dan membuat sesi masuk LSA untuk masuk ini.
[out] SubStatus
Arahkan ke NTSTATUS yang menerima alasan kegagalan karena pembatasan akun. Nilai yang dikembalikan dalam SubStatus ditentukan oleh paket autentikasi.
Tabel berikut mencantumkan nilai SubStatus untuk paket autentikasi MSV1_0 dan Kerberos.
Informasi selengkapnya tentang kode NTSTATUS dapat ditemukan di file header Subauth.h yang dikirim dengan Platform SDK.
Fungsi LsaNtStatusToWinError mengonversi kode NTSTATUS ke kode kesalahan Windows.
[out] TokenInformationType
Pointer yang menerima alamat nilai LSA_TOKEN_INFORMATION_TYPE yang menunjukkan jenis informasi yang dikembalikan untuk dimasukkan dalam token yang akan dibuat. Informasi dikembalikan dengan parameter TokenInformation .
[out] TokenInformation
Pointer yang menerima alamat informasi yang akan disertakan dalam token. Format dan konten TokenInformation ditunjukkan oleh parameter TokenInformationType . Paket autentikasi Anda bertanggung jawab untuk mengalokasikan memori yang digunakan oleh TokenInformation; namun, memori ini akan dikosongkan oleh LSA.
[out] AccountName
Arahkan ke struktur LSA_UNICODE_STRING yang menerima nama akun pengguna. AccountName harus selalu dikembalikan terlepas dari keberhasilan atau kegagalan panggilan; string-nya disertakan dalam catatan audit untuk upaya autentikasi. Paket autentikasi Anda bertanggung jawab untuk mengalokasikan memori yang digunakan oleh AccountName; namun, memori ini akan dikosongkan oleh LSA.
[out] AuthenticatingAuthority
Opsional. Arahkan ke struktur LSA_UNICODE_STRING yang menerima deskripsi otoritas autentikasi untuk masuk. Parameter ini mungkin NULL. String ini disertakan dalam catatan audit untuk upaya autentikasi. Paket autentikasi Anda bertanggung jawab untuk mengalokasikan memori yang digunakan oleh AuthenticatingAuthority; namun, memori ini akan dikosongkan oleh LSA.
Paket autentikasi MSV1_0 mengembalikan nama domain domain yang memvalidasi akun. Paket autentikasi Kerberos mengembalikan nama domain NetBIOS.
[out] MachineName
Pilihan. Pointer yang menerima alamat struktur UNICODE_STRING yang berisi nama komputer klien. String ini dapat dihilangkan secara opsional. String ini disertakan dalam catatan audit untuk upaya autentikasi ini. Paket autentikasi Anda bertanggung jawab untuk mengalokasikan memori yang digunakan oleh MachineName; namun, memori ini akan dikosongkan oleh LSA.
Paket autentikasi MSV1_0 mengembalikan nama NetBIOS dari stasiun kerja klien.
[out] PrimaryCredentials
Arahkan ke struktur SECPKG_PRIMARY_CRED yang mengembalikan kredensial utama untuk diserahkan ke paket lain.
[out] SupplementalCredentials
Penunjuk ke array SECPKG_SUPPLEMENTAL_CRED_ARRAY kredensial tambahan untuk paket lain.
Menampilkan nilai
Jika fungsi berhasil, fungsi harus mengembalikan STATUS_SUCCESS.
Jika tidak, kode kesalahan harus mengembalikan kode kesalahan NTSTATUS, yang dapat menjadi salah satu nilai berikut atau salah satu Nilai Pengembalian Fungsi Kebijakan LSA.
Menampilkan kode | Deskripsi |
---|---|
|
Log masuk tidak dapat diselesaikan karena kuota memori klien tidak cukup untuk mengalokasikan buffer pengembalian. |
|
Tidak ada pengendali domain yang tersedia untuk melayani permintaan autentikasi. |
|
Upaya masuk gagal. Alasan kegagalan tidak ditentukan; alasan umum termasuk nama pengguna dan kata sandi yang salah eja. |
|
Akun pengguna dan kata sandi sah, tetapi pembatasan akun pengguna mencegah keberhasilan masuk saat ini. Untuk informasi tambahan, lihat parameter SubStatus . |
|
Informasi autentikasi yang diberikan tidak dikenali oleh paket autentikasi. |
|
LogonType tidak valid. |
|
ID masuk yang dipilih untuk sesi masuk ini (dalam parameter LogonId ) sudah ada. |
|
Database SAM atau layanan Netlogon diperlukan, tetapi tidak tersedia. |
|
Memori virtual klien atau kuota pagefile tidak cukup untuk mengalokasikan buffer pengembalian. |
Aplikasi panggilan dapat menggunakan fungsi LsaNtStatusToWinError untuk mengonversi kode NTSTATUS ke kode kesalahan Windows.
Keterangan
Paket autentikasi harus menerapkan salah satu fungsi berikut: LsaApLogonUser, LsaApLogonUserEx, atau LsaApLogonUserEx2.
Persyaratan
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 |