Msv1_0SubAuthenticationRoutine-Funktion (subauth.h)
Die Msv1_0SubAuthenticationRoutine-Funktion führt client-/serverspezifische Authentifizierung aus.
Die Anmeldeinformationen und Informationen des Sicherheitsprinzipals aus der SAM-Datenbank (Security Accounts Manager ) werden zur Authentifizierung an diese Funktion übergeben.
Diese Funktion wird von benutzerdefinierten Unterauthentifizierungspaket-DLLs für die Verwendung mit dem MSV1_0-Authentifizierungspakets implementiert.
Die funktion Msv1_0SubAuthenticationRoutine wird nur für eine nicht interaktive Authentifizierung aufgerufen, nur auf dem Authentifizierungsserver, auf dem sich das Konto befindet, und nur, wenn eine Unterauthentifizierungs-DLL unter dem richtigen Schlüssel in der Registrierung registriert ist.
Syntax
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
Gibt die Im Parameter LogonInformation angegebene Informationsebene an. Dieser Parameter ist normalerweise auf NetlogonInteractiveInformation festgelegt.
[in] LogonInformation
Ein Zeiger auf eine NETLOGON_LOGON_IDENTITY_INFO-Struktur . Mitglieder dieser Struktur enthalten Informationen über den Benutzer, der sich anmeldet. Das LogonDomainName-Element dieser Struktur wird ignoriert.
[in] Flags
Optional. Enthält Flags, die die Umstände der Anmeldung beschreiben. Dieser Parameter kann einen der folgenden Werte annehmen.
[in] UserAll
Ein Zeiger auf eine USER_ALL_INFORMATION-Struktur , die die Beschreibung des Benutzers enthält, wie sie von der SAM-Datenbank zurückgegeben wird.
[out] WhichFields
Gibt die Member der USER_ALL_INFORMATION-Struktur zurück, die in die SAM-Datenbank zurückgeschrieben werden müssen. Diese Member werden nur geschrieben, wenn Msv1_0SubAuthenticationRoutine den Aufrufer erfolgreich zurückgibt. Nur der folgende Wert ist gültig.
Wert | Bedeutung |
---|---|
|
Schreiben Sie die im Parameter-Member der UserAll-Struktur enthaltenen Daten zurück in die SAM-Datenbank.
Wenn die Größe des UNICODE_STRING puffers des Parameters-Elements geändert wird, müssen Msv1_0SubAuthenticationRoutine den Puffer mithilfe der funktion MIDL_user_free löschen und ihn mithilfe der funktion MIDL_user_allocate neu zuweisen. |
[out] UserFlags
Werte, die vom ProfileBuffer-Parameter der Funktion LsaLogonUser zurückgegeben werden sollen, wenn er eine MSV1_0_LM20_LOGON_PROFILE-Struktur enthält. Die folgenden Werte sind derzeit für den UserFlags-Member der -Struktur definiert.
Wert | Bedeutung |
---|---|
|
Dies ist eine Gastanmeldung. |
|
Der Aufrufer hat keine verschlüsselten Anmeldeinformationen angegeben. |
[out] Authoritative
Ein Zeiger auf einen booleschen Wert, der angibt, ob die zurückgegebene status eine autorisierende status ist, die an den ursprünglichen Aufrufer zurückgegeben werden soll. Wenn der zurückgegebene Wert FALSE ist, kann die Anmeldeanforderung auf einem anderen Domänencontroller erneut versucht werden. Dieser Parameter sollte unabhängig vom Rückgabewert des Funktionsaufrufs gültige Informationen zurückgeben.
[out] LogoffTime
Ein Zeiger auf einen Wert, der den Zeitpunkt empfängt, zu dem sich der Benutzer vom System abmelden soll. Diese Zeit wird verwendet, um die Anmeldelebensdauer zu steuern, und wird als GMT-relative Systemzeit angegeben.
[out] KickoffTime
Ein Zeiger auf einen Wert, der den Zeitpunkt empfängt, zu dem der Benutzer vom System abgemeldet werden soll. Diese Zeit wird verwendet, um die Anmeldelebensdauer zu steuern, und wird als GMT-relative Systemzeit angegeben. Wenn der Benutzer nicht abgemeldet werden soll, geben Sie einen großen positiven Wert an, z. B.:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Rückgabewert
Diese Funktion muss einen der folgenden Werte zurückgeben.
Rückgabecode | Beschreibung |
---|---|
|
Es ist kein Fehler aufgetreten. |
|
Das Konto ist deaktiviert. |
|
Das Konto ist abgelaufen. |
|
Das Konto ist gesperrt. |
|
LogonLevel ist ungültig. |
|
Der Benutzer ist zu diesem Zeitpunkt nicht berechtigt, sich anzumelden. |
|
Der Benutzer ist nicht autorisiert, sich bei der angegebenen Arbeitsstation anzumelden. |
|
Der angegebene Benutzer verfügt über kein Konto. |
|
Das Kennwort ist abgelaufen. |
|
Das Konto ist gekennzeichnet, um anzugeben, dass das Kennwort bei der nächsten Anmeldung geändert werden muss. |
|
Das Kennwort war ungültig. |
Hinweise
Diese Funktion wird vom MSV1_0-Authentifizierungspaket aufgerufen, wenn ein Teil des AuthenticationInformation-Parameters angibt, dass eine Unterauthentifizierung durchgeführt werden soll, und wenn eine Unterauthentifizierungs-DLL, die die Msv1_0SubAuthenticationRoutine-Funktion exportiert, ordnungsgemäß auf der Arbeitsstation registriert ist.
Das MSV1_0-Authentifizierungspaket unterstützt keine Unterauthentifizierung für interaktive Anmeldungen, die die MSV1_0_INTERACTIVE_LOGON-Struktur erfordern. Netzwerkanmeldungen, die die MSV1_0_LM20_LOGON-Struktur erfordern, können eine Unterauthentifizierung verwenden.
Die funktion Msv1_0SubAuthenticationRoutine wird aufgerufen, nachdem der richtige Domänencontroller gefunden wurde und alle Informationen zum zu authentifizierden Sicherheitsprinzipal aus der SAM-Datenbank abgerufen wurden. Wenn die Unterauthentifizierung verwendet wird, liegt die Authentifizierung in der Verantwortung der Unterauthentifizierungs-DLL und muss von der von dieser DLL exportierten Msv1_0SubAuthenticationRoutine-Funktion erfolgen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | subauth.h |