Freigeben über


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.

Hinweis Das Kerberos-Authentifizierungspaket ruft diese Routine nicht auf.
 

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.

Wert Bedeutung
MSV1_0_PASSTHRU
Passthrough-Authentifizierung Der Benutzer stellt keine Verbindung mit diesem Computer her.
MSV1_0_GUEST_LOGON
Dies ist ein Wiederholungsversuch der Anmeldung mithilfe des GUEST-Benutzerkontos.

[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
USER_ALL_PARAMETERS
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
LOGON_GUEST
Dies ist eine Gastanmeldung.
LOGON_NOENCRYPTION
Der Aufrufer hat keine verschlüsselten Anmeldeinformationen angegeben.
 
Hinweis Gemäß der Konvention geben Unterauthentifizierungspakete Bits nur in der hohen Reihenfolge von UserFlags zurück. Diese Konvention wird jedoch nicht erzwungen.
 

[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
STATUS_SUCCESS
Es ist kein Fehler aufgetreten.
STATUS_ACCOUNT_DISABLED
Das Konto ist deaktiviert.
STATUS_ACCOUNT_EXPIRED
Das Konto ist abgelaufen.
STATUS_ACCOUNT_LOCKED_OUT
Das Konto ist gesperrt.
STATUS_INVALID_INFO_CLASS
LogonLevel ist ungültig.
STATUS_INVALID_LOGON_HOURS
Der Benutzer ist zu diesem Zeitpunkt nicht berechtigt, sich anzumelden.
STATUS_INVALID_WORKSTATION
Der Benutzer ist nicht autorisiert, sich bei der angegebenen Arbeitsstation anzumelden.
STATUS_NO_SUCH_USER
Der angegebene Benutzer verfügt über kein Konto.
STATUS_PASSWORD_EXPIRED
Das Kennwort ist abgelaufen.
STATUS_PASSWORD_MUST_CHANGE
Das Konto ist gekennzeichnet, um anzugeben, dass das Kennwort bei der nächsten Anmeldung geändert werden muss.
STATUS_WRONG_PASSWORD
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