funzione Msv1_0SubAuthenticationRoutine (subauth.h)
La funzione Msv1_0SubAuthenticationRoutine esegue l'autenticazione specifica del client o del server.
Le credenziali e le informazioni dell'entità di sicurezza del database sam (Security Accounts Manager ) vengono passate a questa funzione per l'autenticazione.
Questa funzione viene implementata dalle DLL personalizzate del pacchetto di autenticazione secondaria da usare con il pacchetto di autenticazione MSV1_0.
La funzione Msv1_0SubAuthenticationRoutine viene chiamata solo per un'autenticazione non interattiva, solo nel server di autenticazione in cui risiede l'account e solo se una DLL di autenticazione secondaria è registrata nella chiave corretta nel Registro di sistema.
Sintassi
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
);
Parametri
[in] LogonLevel
Specifica il livello di informazioni specificate nel parametro LogonInformation . Questo parametro è in genere impostato su NetlogonInteractiveInformation.
[in] LogonInformation
Puntatore a una struttura NETLOGON_LOGON_IDENTITY_INFO . I membri di questa struttura contengono informazioni sull'utente che esegue l'accesso. Il membro LogonDomainName di questa struttura viene ignorato.
[in] Flags
facoltativo. Contiene flag che descrivono le circostanze dell'accesso. Questo parametro può avere uno dei valori seguenti.
[in] UserAll
Puntatore a una struttura USER_ALL_INFORMATION che contiene la descrizione dell'utente restituito dal database SAM.
[out] WhichFields
Restituisce i membri della struttura USER_ALL_INFORMATION che devono essere riscritto nel database SAM. Questi membri verranno scritti solo se Msv1_0SubAuthenticationRoutine restituisce l'esito positivo al chiamante. Solo il valore seguente è valido.
Valore | Significato |
---|---|
|
Scrivere i dati contenuti nel membro Parameters della struttura UserAll nel database SAM.
Se le dimensioni del buffer UNICODE_STRING del membro Parameters vengono modificate, Msv1_0SubAuthenticationRoutine deve eliminare il buffer usando la funzione MIDL_user_free e riallocarla usando la funzione MIDL_user_allocate . |
[out] UserFlags
Valori da restituire dal parametro ProfileBuffer della funzione LsaLogonUser, quando contiene una struttura MSV1_0_LM20_LOGON_PROFILE. I valori seguenti sono attualmente definiti per il membro UserFlags della struttura.
Valore | Significato |
---|---|
|
Si tratta di un accesso guest. |
|
Il chiamante non ha specificato le credenziali crittografate. |
[out] Authoritative
Puntatore a un valore booleano che indica se lo stato restituito è uno stato autorevole che deve essere restituito al chiamante originale. Se il valore restituito è FALSE, la richiesta di accesso può essere riprovata in un altro controller di dominio. Questo parametro deve restituire informazioni valide indipendentemente dal valore restituito della chiamata di funzione.
[out] LogoffTime
Puntatore a un valore che riceve il momento in cui l'utente deve disconnettersi dal sistema. Questa volta viene usata per controllare la durata dell'accesso e viene specificata come ora di sistema relativa GMT.
[out] KickoffTime
Puntatore a un valore che riceve il momento in cui l'utente deve essere disconnesso dal sistema. Questa volta viene usata per controllare la durata dell'accesso e viene specificata come ora di sistema relativa GMT. Se l'utente non deve essere disconnesso, specificare un valore positivo di grandi dimensioni, ad esempio:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Valore restituito
Questa funzione deve restituire uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Non è stato generato alcun errore. |
|
L'account è disabilitato. |
|
L'account è scaduto. |
|
L'account è bloccato. |
|
LogonLevel non valido. |
|
L'utente non è autorizzato ad accedere in questo momento. |
|
L'utente non è autorizzato ad accedere alla workstation specificata. |
|
L'utente specificato non ha account. |
|
La password è scaduta. |
|
L'account è contrassegnato per indicare che la password deve essere modificata nell'accesso successivo. |
|
Password non valida. |
Commenti
Questa funzione viene chiamata dal pacchetto di autenticazione MSV1_0 se parte del parametro AuthenticationInformation indica che la sottoautenticazione deve essere eseguita e se una DLL di autenticazione secondaria che esporta la funzione Msv1_0SubAuthenticationRoutine viene registrata correttamente nella workstation.
Il pacchetto di autenticazione MSV1_0 non supporta l'autenticazione secondaria per gli accessi interattivi, che richiedono la struttura MSV1_0_INTERACTIVE_LOGON . Gli accessi di rete, che richiedono la struttura MSV1_0_LM20_LOGON , possono usare l'autenticazione secondaria.
La funzione Msv1_0SubAuthenticationRoutine viene chiamata dopo che il controller di dominio corretto è stato individuato e tutte le informazioni sull'entità di sicurezza da autenticare sono state recuperate dal database SAM. Quando viene usata la sottoautenticazione, l'autenticazione è responsabilità della DLL di autenticazione secondaria e deve essere eseguita dalla funzione Msv1_0SubAuthenticationRoutine esportata da tale DLL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | subauth.h |