Condividi tramite


ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer Metodo

Definizione

Aggiorna la domanda e la risposta relative alla password di un utente nell'archivio Active Directory.

public:
 override bool ChangePasswordQuestionAndAnswer(System::String ^ username, System::String ^ password, System::String ^ newPasswordQuestion, System::String ^ newPasswordAnswer);
public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPasswordQuestion, string newPasswordAnswer);
override this.ChangePasswordQuestionAndAnswer : string * string * string * string -> bool
Public Overrides Function ChangePasswordQuestionAndAnswer (username As String, password As String, newPasswordQuestion As String, newPasswordAnswer As String) As Boolean

Parametri

username
String

Utente per cui modificare la domanda e la risposta per la password.

password
String

Password dell'utente specificato.

newPasswordQuestion
String

Nuova domanda per la password per l'utente specificato.

newPasswordAnswer
String

Nuova risposta per la password per l'utente specificato.

Restituisce

true se l'aggiornamento è stato eseguito correttamente. In caso contrario, false. Il valore false viene restituito anche se la password è errata, l'utente è bloccato o non esiste nell'archivio dati di Active Directory.

Eccezioni

L'amministratore non ha mappato i campi di domanda e risposta relative alla password sugli attributi dello schema di Active Directory.

username è vuoto oppure supera la lunghezza massima per il nome utente (in genere 256 caratteri).

-oppure-

username contiene virgole.

-oppure-

Il nome utente è mappato sull'attributo userPrincipalName e il parametro username contiene barre rovesciate.

-oppure-

password è una stringa di lunghezza zero.

-oppure-

password supera la lunghezza massima della password (in genere 128 caratteri).

-oppure-

Il parametro newPasswordQuestion è vuoto e il valore della proprietà RequiresQuestionAndAnswer è true.

-oppure-

newPasswordQuestion è di lunghezza superiore a 256 caratteri.

-oppure-

newPasswordAnswer supera i 128 caratteri di lunghezza dopo che la risposta è stata crittografata.

username è null.

-oppure-

password è null.

-oppure-

Il parametro newPasswordQuestion è null e il valore della proprietà RequiresQuestionAndAnswer è true.

-oppure-

Il parametro newPasswordAnswer è null e il valore della proprietà RequiresQuestionAndAnswer è true.

L'elemento di configurazione machineKey Element (schema delle impostazioni ASP.NET) indica una chiave di crittografia generata automaticamente dal computer. È necessario impostare in modo esplicito l'attributo decryptionKey dell'elemento machineKey Element (schema delle impostazioni ASP.NET) per archiviare le risposte per le password con l'oggetto ActiveDirectoryMembershipProvider.

Il metodo ChangePasswordQuestionAndAnswer(String, String, String, String) viene chiamato prima che venga inizializzata l'istanza della classe ActiveDirectoryMembershipProvider.

Commenti

Il metodo viene chiamato dalla ActiveDirectoryMembershipUser classe per aggiornare la domanda e la risposta della password per un utente nell'archivio di appartenenze ad Active Directory.

La richiesta di una domanda e una risposta alla password offrono un livello di sicurezza aggiuntivo durante la reimpostazione della password di un utente. Quando si crea un nome utente, un utente può fornire una domanda e una risposta che in seguito può essere usata per reimpostare una password dimenticata. Il ChangePasswordQuestionAndAnswer metodo aggiorna la domanda e la risposta della password per un utente di appartenenza ai nuovi valori.

Per usare il ChangePasswordQuestionAndAnswer metodo , è necessario impostare questi attributi aggiuntivi nel file di configurazione dell'applicazione:

  • Il parametro requiresQuestionAndAnswer deve essere impostato su true.

  • attributeMapPasswordQuestion e attributeMapPasswordAnswer devono essere mappati agli attributi nello schema di Active Directory.

Se i criteri precedenti non vengono soddisfatti, viene generata un'eccezione ProviderException all'inizializzazione.

L'istanza ActiveDirectoryMembershipProvider si connette all'archivio dati di Active Directory con le credenziali fornite nei username parametri e password per convalidare la combinazione di nome utente/password. L'aggiornamento effettivo della domanda e della risposta viene eseguito con le credenziali di connessione configurate del provider.

Se al metodo viene fornita ChangePasswordQuestionAndAnswer una password non corretta, il server di directory incrementerà i contatori che tengono traccia dei tentativi di password non validi. Ciò può comportare il blocco dell'utente e l'impossibilità di accedere fino a quando lo stato del blocco non viene cancellato da una chiamata al UnlockUser metodo o dalla durata bloccata specificata nella directory passa.

Se l'aggiornamento alla domanda e la risposta ha esito positivo e la EnablePasswordReset proprietà è true, i contatori di rilevamento delle risposte alle password non valido dell'utente vengono reimpostati.

La risposta alla password viene crittografata usando il EncryptPassword metodo prima che venga archiviata nell'archivio dati di Active Directory. La chiave di crittografia e l'algoritmo vengono specificati dall'elemento di configurazione machineKey Element (ASP.NET Settings Schema). L'attributo di decrittografia nell'elemento machineKey Element (ASP.NET Settings Schema) deve essere specificato, la ActiveDirectoryMembershipProvider classe non supporta le chiavi di crittografia generate automaticamente.

La lunghezza massima per la domanda relativa alla password è di 256 caratteri. La lunghezza massima per la risposta alla password è di 128 caratteri.

Gli spazi iniziali e finali vengono eliminati da tutti i valori dei parametri ad eccezione di password.

Il provider trova l'istanza utente da aggiornare eseguendo una ricerca sottoalbero per il nome utente a partire dal punto di ricerca specificato nella stringa di connessione. Per altre informazioni sulle stringhe di connessione, vedere l'argomento relativo alla ActiveDirectoryMembershipProvider classe.

Si applica a

Vedi anche