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
MSV1_0_PASSTHRU
Autentikasi pass-through. Pengguna tidak tersambung ke komputer ini.
MSV1_0_GUEST_LOGON
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
USER_ALL_PARAMETERS
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
LOGON_GUEST
Ini adalah log masuk tamu.
LOGON_NOENCRYPTION
Pemanggil tidak menentukan kredensial terenkripsi.
 
Catatan Menurut konvensi, paket subauthentication mengembalikan bit hanya dalam byte urutan tinggi dari parameter UserFlags .
 

[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
STATUS_SUCCESS
Tidak ada kesalahan.
STATUS_ACCOUNT_DISABLED
Akun dinonaktifkan.
STATUS_ACCOUNT_EXPIRED
Akun telah kedaluwarsa.
STATUS_ACCOUNT_LOCKED_OUT
Akun terkunci.
STATUS_INVALID_INFO_CLASS
LogonLevel tidak valid.
STATUS_INVALID_LOGON_HOURS
Pengguna tidak berwenang untuk masuk saat ini.
STATUS_INVALID_WORKSTATION
Pengguna tidak berwenang untuk masuk ke stasiun kerja yang ditentukan.
STATUS_NO_SUCH_USER
Pengguna yang ditentukan tidak memiliki akun.
STATUS_PASSWORD_EXPIRED
Kata sandi kedaluwarsa.
STATUS_PASSWORD_MUST_CHANGE
Kata sandi harus berubah saat masuk berikutnya.
STATUS_WRONG_PASSWORD
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