Condividi tramite


ActiveDirectoryMembershipProvider.ResetPassword(String, String) Metodo

Definizione

Reimposta la password di un utente su una nuova password generata automaticamente.

public:
 override System::String ^ ResetPassword(System::String ^ username, System::String ^ passwordAnswer);
public override string ResetPassword (string username, string passwordAnswer);
override this.ResetPassword : string * string -> string
Public Overrides Function ResetPassword (username As String, passwordAnswer As String) As String

Parametri

username
String

Utente per il quale reimpostare la password.

passwordAnswer
String

Risposta per la password dell'utente specificato.

Restituisce

Nuova password per l'utente specificato.

Eccezioni

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

Il valore della proprietà EnablePasswordReset è false.

passwordAnswer è null.

-oppure-

username è null.

dopo l'operazione di taglio, passwordAnswer è una stringa vuota.

-oppure-

passwordAnswer è di lunghezza superiore a 128 caratteri.

-oppure-

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

-oppure-

username contiene virgole.

-oppure-

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

L'utente viene bloccato a causa di un numero eccessivo di tentativi con password errate oppure di tentativi di reimpostazione della risposta per la password.

-oppure-

passwordAnswer non corrisponde alla risposta per la password archiviata.

L'utente specificato in username non esiste nell'archivio dati di Active Directory.

-oppure-

Una password generata non supera un gestore di convalida personalizzato.

-oppure-

La password generata non è sufficientemente complessa da soddisfare le regole personalizzate per le password impostate nel server Active Directory.

-oppure-

Non è stato possibile stabilire una connessione sicura con un server Active Directory Application Mode per impostare la nuova password.

Eccezione non gestita.

Commenti

Il metodo viene chiamato dalla Membership classe per reimpostare la password per un utente nell'archivio dati di Active Directory in un nuovo valore generato casualmente. Viene restituita la nuova password.

Nota

La password casuale creata dal ResetPassword metodo non è garantita per passare l'espressione regolare nella PasswordStrengthRegularExpression proprietà. Tuttavia, la password casuale soddisfa i criteri stabiliti dalle MinRequiredPasswordLength proprietà e MinRequiredNonAlphanumericCharacters .

Se viene fornita una risposta errata al ResetPassword metodo, il contatore interno che tiene traccia dei tentativi di risposta password non validi viene incrementato di uno. Ciò può comportare l'impossibilità dell'utente di accedere fino a quando lo stato del blocco non viene cancellato da una chiamata al UnlockUser metodo. Se viene fornita la risposta password corretta e l'utente non è attualmente bloccato, il contatore interno che tiene traccia dei tentativi di password non validi viene reimpostato su zero. Per altre informazioni, vedere le proprietà MaxInvalidPasswordAttempts e PasswordAttemptWindow.

Gli spazi iniziali e finali vengono tagliati da tutti i valori dei parametri.

È possibile chiamare il ResetPassword metodo direttamente ottenendo un riferimento all'istanza ActiveDirectoryMembershipProvider dalla Membership.Provider proprietà.

Il provider usa una ricerca sottoalbero a partire dal punto di ricerca specificato nella stringa di connessione. Per altre informazioni sulle stringhe di connessione, vedere l'argomento ActiveDirectoryMembershipProvider della classe.

Per impostare le password in un server Active Directory, l'attributo connectionProtection deve essere impostato su SignAndSeal.

Quando si usa un server ADAM, l'attributo può essere impostato su None, ma solo se si configura in modo esplicito il connectionProtection server ADAM per consentire le modifiche delle password sulle connessioni non protette.

Importante

Non è possibile reimpostare le password a meno che le credenziali usate per connettersi al server Active Directory abbiano diritti di amministratore di dominio (non consigliato) o il diritto di accesso "reimposta password".

Per reimpostare una password, tutte le condizioni seguenti devono essere vere:

  • La proprietà EnablePasswordReset deve essere impostata su true.

  • Lo schema di Active Directory deve essere modificato in modo da contenere attributi per archiviare la domanda e la risposta della password e i tre campi di rilevamento per le modifiche delle risposte alle password.

  • Gli attributeMapPasswordQuestionattributi , attributeMapPasswordAnswer, attributeMapFailedPasswordAnswerTimeattributeMapFailedPasswordAnswerCounte attributeMapFailedPasswordAnswerLockedTime devono essere impostati nel file di configurazione dell'applicazione.

  • La proprietà RequiresQuestionAndAnswer deve essere impostata su true.

  • Il contesto di sicurezza per la connessione all'archivio dati di Active Directory (l'account di processo o le credenziali esplicite) deve avere privilegi sufficienti per modificare le password. Le credenziali usate per connettersi al server Active Directory hanno diritti di amministratore di dominio (non consigliato) o il diritto di accesso "reimposta password".

Nota

I criteri di sicurezza impostati nel server Active Directory possono rendere impossibile generare ResetPassword una password che soddisfi i criteri. L'implementazione predefinita del metodo genererà le password che soddisfano i criteri password predefiniti nei controller di GeneratePassword dominio che eseguono Windows Server 2003 SP1. Se la password non può essere reimpostata a causa dei criteri di sicurezza nel server Active Directory, viene generato un ProviderException valore.

Si applica a

Vedi anche