funzione Msv1_0SubAuthenticationFilter (subauth.h)
La funzione Msv1_0SubAuthenticationFilter esegue l'autenticazione di accesso utente specifica per i controller di dominio.
La funzione riceve i dati di accesso dell'utente e tutte le informazioni trovate per l'utente nel database Sam ( Security Accounts Manager ) del controller di dominio.
Questa funzione viene implementata dalle DLL del pacchetto di sottoutenticazione personalizzate da usare con i pacchetti di autenticazione Kerberos e MSV1_0.
Sintassi
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
);
Parametri
[in] LogonLevel
Specifica il livello di informazioni specificate in 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 viene ignorato.
[in] Flags
facoltativo. Contiene flag che descrivono le circostanze dell'accesso. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Autenticazione pass-through. L'utente non si connette a questo computer. |
|
Si tratta di un nuovo tentativo dell'accesso usando l'account Guest. |
[in] UserAll
Puntatore a una struttura USER_ALL_INFORMATION che contiene la descrizione dell'utente come restituito dal database SAM.
[out] WhichFields
Restituisce i membri della struttura USER_ALL_INFORMATION che devono essere scritti nel database SAM. Questi membri verranno scritti solo se Msv1_0SubAuthenticationFilter restituisce esito positivo. Solo il valore seguente è valido.
Valore | Significato |
---|---|
|
Scrivere i dati contenuti nel membro Parametri della struttura UserAll nel database SAM.
Se le dimensioni del buffer UNICODE_STRING del membro Parametri vengono modificate, Msv1_0SubAuthenticationFilter deve eliminare il buffer usando la funzioneMIDL_user_free e riallocarla usando la funzione MIDL_user_allocate. |
[out] UserFlags
Valori da restituire dalla funzione LsaLogonUser nel parametro ProfileBuffer della funzione. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Questo è stato 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 su un altro controller di dominio. Questo parametro deve restituire informazioni valide indipendentemente dal valore restituito della chiamata alla funzione. Questo parametro non viene usato con il pacchetto di autenticazione Kerberos.
[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 DI Windows relativa a 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 gmt-relativa. Se l'utente non deve essere disconnesso automaticamente, specificare un valore positivo di grandi dimensioni, come indicato di seguito:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Valore restituito
Questa funzione deve restituire uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Non è stato visualizzato 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 alcun account. |
|
La password è scaduta. |
|
La password deve cambiare nell'accesso successivo. |
|
La password non è valida. |
Quando la funzione Msv1_0SubAuthenticationFilter viene usata con il pacchetto di autenticazione Kerberos, se la chiamata alla funzione restituisce STATUS_SUCCESS e uno dei due parametri LogoffTime o KickoffTime ha un valore diverso da zero, questo valore viene usato come durata del ticket. Se, d'altra parte, i valori di entrambi i parametri non sono zero, viene usato il valore inferiore di questi due valori.
Se il valore utilizzato per la durata del ticket (il prima di LogoffTime e KickoffTime) è maggiore della durata predefinita del ticket, tale valore verrà usato come tempo di rinnovo massimo per il ticket. Al contrario, se il valore più grande dei due valori (più avanti di LogoffTime e KickoffTime) è minore della durata predefinita del ticket, questo valore verrà usato come durata del ticket. Per altre informazioni, vedere Microsoft Kerberos.
Quando viene usato con il pacchetto di autenticazione Kerberos, se questa funzione restituisce un errore, il Centro distribuzione chiavi restituirà l'errore Kerberos KDC_ERR_POLICY, con il valore di stato come codice di errore esteso.
Commenti
Le implementazioni di questa funzione non devono eseguire operazioni che causano il traffico LDAP ( Lightweight Directory Access Protocol ). Ad esempio, non connettersi e eseguire query sul database di Active Directory .
Dopo aver convalidato il pacchetto di autenticazione MSV1_0 o Kerberos, la funzione Msv1_0SubAuthenticationFilter può eseguire una convalida aggiuntiva per determinare se un utente può accedere a un account di rete. Questa funzione viene chiamata se la DLL del pacchetto di sottoutenticazione viene registrata correttamente come 'Auth0' nel Registro di sistema del controller di dominio. Il percorso del Registro di sistema è diverso a seconda che la funzione si trova in una DLL del pacchetto di MSV1_0 o della sottoutenticazione Kerberos.
Questa routine di filtro può restituire STATUS_SUCCESS, che indica che l'accesso deve procedere o un codice di errore, che indica che la convalida aggiuntiva non è riuscita.
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 |