fungsi Msv1_0SubAuthenticationRoutine (subauth.h)

Fungsi Msv1_0SubAuthenticationRoutine melakukan autentikasi khusus klien/server.

Kredensial dan informasi perwakilan keamanan dari database Security Accounts Manager (SAM) diteruskan ke fungsi ini untuk autentikasi.

Fungsi ini diimplementasikan oleh DLL paket subautentikasi kustom untuk digunakan dengan paket autentikasi MSV1_0.

Fungsi Msv1_0SubAuthenticationRoutine hanya dipanggil untuk autentikasi noninteraktif, hanya pada server autentikasi tempat akun berada, dan hanya jika DLL subautentikasi terdaftar di bawah kunci yang benar dalam registri.

Catatan Paket autentikasi Kerberos tidak memanggil rutinitas ini.
 

Sintaks

NTSTATUS Msv1_0SubAuthenticationRoutine(
  [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 parameter 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 dari struktur ini 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 pengguna 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_0SubAuthenticationRoutine mengembalikan keberhasilan kepada pemanggil. 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_0SubAuthenticationRoutine harus menghapus buffer dengan menggunakan fungsi MIDL_user_free dan mengalokasikannya kembali dengan menggunakan fungsi MIDL_user_allocate .

[out] UserFlags

Nilai yang akan dikembalikan dari parameter ProfileBuffer fungsi LsaLogonUser, saat berisi struktur MSV1_0_LM20_LOGON_PROFILE. Nilai berikut saat ini didefinisikan untuk anggota UserFlags dari struktur.

Nilai Makna
LOGON_GUEST
Ini adalah log masuk tamu.
LOGON_NOENCRYPTION
Pemanggil tidak menentukan kredensial terenkripsi.
 
Catatan Berdasarkan konvensi, paket subauthentication mengembalikan bit hanya dalam byte urutan tinggi UserFlags; namun, konvensi ini tidak diberlakukan.
 

[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 pengontrol domain lain. Parameter ini harus mengembalikan informasi yang valid terlepas dari nilai pengembalian panggilan fungsi.

[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 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, tentukan nilai positif besar, seperti:

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
Akun ditandai untuk menunjukkan bahwa kata sandi harus diubah pada masuk berikutnya.
STATUS_WRONG_PASSWORD
Kata sandi tidak valid.

Keterangan

Fungsi ini dipanggil oleh paket autentikasi MSV1_0 jika bagian dari parameter AuthenticationInformation menunjukkan bahwa subautentikasi harus dilakukan dan jika DLL subautentikasi yang mengekspor fungsi Msv1_0SubAuthenticationRoutine terdaftar dengan benar di stasiun kerja.

Paket autentikasi MSV1_0 tidak mendukung subautentikasi untuk masuk interaktif, yang memerlukan struktur MSV1_0_INTERACTIVE_LOGON . Logon jaringan, yang memerlukan struktur MSV1_0_LM20_LOGON , dapat menggunakan subauthentication.

Fungsi Msv1_0SubAuthenticationRoutine dipanggil setelah pengendali domain yang benar telah ditemukan dan semua informasi tentang prinsip keamanan yang akan diautentikasi telah diambil dari database SAM. Ketika subautentikasi digunakan, autentikasi adalah tanggung jawab DLL subautentikasi dan harus dilakukan oleh fungsi Msv1_0SubAuthenticationRoutine yang diekspor oleh DLL tersebut.

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