Msv1_0SubAuthenticationFilter (subauth.h)
Fungsi Msv1_0SubAuthenticationFilter melakukan autentikasi masuk pengguna yang khusus untuk pengendali domain.
Fungsi ini menerima data masuk pengguna dan semua informasi yang ditemukan untuk pengguna di database Security Accounts Manager (SAM) pengendali domain.
Fungsi ini diimplementasikan oleh DLL paket subautentikasi kustom untuk digunakan dengan paket autentikasi Kerberos dan MSV1_0.
Sintaks
NTSTATUS Msv1_0SubAuthenticationFilter(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
Parameter
[in] LogonLevel
Menentukan tingkat informasi yang diberikan dalam LogonInformation. Parameter ini biasanya diatur ke NetlogonInteractiveInformation.
[in] LogonInformation
Penunjuk ke struktur NETLOGON_LOGON_IDENTITY_INFO . Anggota struktur ini berisi informasi tentang pengguna yang masuk. Anggota LogonDomainName diabaikan.
[in] Flags
Pilihan. Berisi bendera yang menjelaskan keadaan masuk. Parameter ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Autentikasi pass-through. Pengguna tidak tersambung ke komputer ini. |
|
Ini adalah coba lagi masuk menggunakan akun Tamu. |
[in] UserAll
Penunjuk ke struktur USER_ALL_INFORMATION yang berisi deskripsi pengguna seperti yang dikembalikan dari database SAM.
[out] WhichFields
Mengembalikan anggota struktur USER_ALL_INFORMATION yang perlu ditulis kembali ke database SAM. Anggota ini hanya akan ditulis jika Msv1_0SubAuthenticationFilter mengembalikan keberhasilan. Hanya nilai berikut yang valid.
Nilai | Makna |
---|---|
|
Tulis data yang terkandung dalam anggota Parameter dari struktur UserAll kembali ke database SAM.
Jika ukuran buffer UNICODE_STRING anggota Parameter diubah, Msv1_0SubAuthenticationFilter harus menghapus buffer dengan menggunakan fungsi MIDL_user_free dan mengalokasikan ulang dengan menggunakan fungsi MIDL_user_allocate. |
[out] UserFlags
Nilai yang akan dikembalikan dari fungsi LsaLogonUser dalam parameter ProfileBuffer fungsi tersebut. Parameter ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Ini adalah log masuk tamu. |
|
Pemanggil tidak menentukan kredensial terenkripsi. |
[out] Authoritative
Penunjuk ke nilai Boolean yang menunjukkan apakah status yang dikembalikan adalah status otoritatif yang harus dikembalikan ke pemanggil asli. Jika nilai yang dikembalikan adalah FALSE, permintaan masuk dapat dicoba lagi pada pengendali domain lain. Parameter ini harus mengembalikan informasi yang valid terlepas dari nilai pengembalian panggilan fungsi. Parameter ini tidak digunakan dengan paket autentikasi Kerberos.
[out] LogoffTime
Penunjuk ke nilai yang menerima waktu pengguna harus keluar dari sistem. Waktu ini digunakan untuk mengontrol masa pakai log masuk dan ditentukan sebagai waktu sistem Windows relatif GMT.
[out] KickoffTime
Penunjuk ke nilai yang menerima waktu saat pengguna harus keluar dari sistem. Waktu ini digunakan untuk mengontrol masa pakai log masuk dan ditentukan sebagai waktu sistem relatif GMT. Jika pengguna tidak akan masuk secara otomatis, tentukan nilai positif besar, sebagai berikut:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Mengembalikan nilai
Fungsi ini harus mengembalikan salah satu nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Tidak ada kesalahan. |
|
Akun dinonaktifkan. |
|
Akun telah kedaluwarsa. |
|
Akun terkunci. |
|
LogonLevel tidak valid. |
|
Pengguna tidak berwenang untuk masuk saat ini. |
|
Pengguna tidak berwenang untuk masuk ke stasiun kerja yang ditentukan. |
|
Pengguna yang ditentukan tidak memiliki akun. |
|
Kata sandi kedaluwarsa. |
|
Kata sandi harus berubah saat masuk berikutnya. |
|
Kata sandi tidak valid. |
Ketika fungsi Msv1_0SubAuthenticationFilter digunakan dengan paket autentikasi Kerberos, jika panggilan fungsi mengembalikan STATUS_SUCCESS dan salah satu dari dua parameter LogoffTime atau KickoffTime memiliki nilai bukan nol, nilai ini digunakan sebagai masa pakai tiket. Jika, di sisi lain, nilai kedua parameter bukan nol, yang lebih kecil dari kedua nilai ini digunakan.
Jika nilai yang digunakan untuk masa pakai tiket (semakin cepat LogoffTime dan KickoffTime) lebih besar dari masa pakai tiket default, maka nilai tersebut akan digunakan sebagai waktu perpanjangan maksimum untuk tiket. Sebaliknya, jika lebih besar dari dua nilai (yang lebih baru dari LogoffTime dan KickoffTime) kurang dari masa pakai tiket default, nilai ini akan digunakan sebagai masa pakai tiket. Untuk informasi selengkapnya, lihat Microsoft Kerberos.
Saat digunakan dengan paket autentikasi Kerberos, jika fungsi ini mengembalikan kesalahan, Key Distribution Center (KDC) akan mengembalikan kesalahan Kerberos KDC_ERR_POLICY, dengan nilai status sebagai kode kesalahan yang diperluas.
Keterangan
Implementasi fungsi ini tidak boleh menjalankan operasi apa pun yang menyebabkan lalu lintas Lightweight Directory Access Protocol (LDAP). Misalnya, jangan menyambungkan dan mengkueri database Direktori Aktif .
Setelah paket autentikasi MSV1_0 atau Kerberos memvalidasi masuk, fungsi Msv1_0SubAuthenticationFilter dapat melakukan validasi tambahan untuk menentukan apakah pengguna dapat masuk ke akun jaringan. Fungsi ini dipanggil jika DLL paket subauthentication terdaftar dengan benar sebagai 'Auth0' di registri pengendali domain. Jalur registri berbeda tergantung pada apakah fungsi berada dalam dll paket MSV1_0 atau Kerberos Subauthentication.
Rutinitas filter ini dapat mengembalikan STATUS_SUCCESS, yang menunjukkan bahwa masuk harus dilanjutkan, atau kode kegagalan, yang menunjukkan bahwa validasi tambahan gagal.
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 | subauth.h |