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

L'utente per cui reimpostare la password.

passwordAnswer
String

Risposta password per l'utente specificato.

Restituisce

Nuova password per l'utente specificato.

Eccezioni

Il metodo viene chiamato prima dell'inizializzazione ResetPassword(String, String) dell'istanza ActiveDirectoryMembershipProvider .

Il valore della EnablePasswordReset proprietà è false.

passwordAnswer è null.

oppure

username è null.

passwordAnswer è vuoto dopo il taglio

oppure

passwordAnswer supera i 128 caratteri.

oppure

username è vuoto o supera la lunghezza massima consentita per i nomi utente (in genere 256 caratteri).

oppure

username contiene virgole.

oppure

Viene eseguito il mapping del nome utente a userPrincipalName ma il username parametro contiene barre rovesciate.

L'utente è bloccato a causa di troppi tentativi di accesso non valido o troppi tentativi di reimpostazione della risposta alla password.

oppure

passwordAnswer non corrisponde alla risposta della password archiviata.

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

oppure

Una password generata non passa un gestore di convalida personalizzato.

oppure

La password generata non è sufficientemente complessa da soddisfare i criteri password personalizzati impostati nel server Active Directory.

oppure

Non è possibile stabilire una connessione sicura a un server in modalità applicazione Active Directory per impostare la nuova password.

Si è verificata un'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 in modo casuale. Viene restituita la nuova password.

Annotazioni

Non è garantito che la password casuale creata dal ResetPassword metodo passi 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 MaxInvalidPasswordAttempts proprietà e PasswordAttemptWindow .

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

È possibile chiamare direttamente il ResetPassword metodo ottenendo prima 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 relativo alla 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 connectionProtection può essere impostato su None, ma solo se si configura in modo esplicito il server ADAM per consentire le modifiche delle password su 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 per contenere attributi per l'archiviazione della domanda e della risposta alla password e i tre campi di rilevamento per le modifiche alle risposte alle password.

  • Gli attributeMapPasswordQuestionattributi , attributeMapFailedPasswordAnswerCountattributeMapPasswordAnswer, attributeMapFailedPasswordAnswerTime, e 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 disporre di 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".

Annotazioni

I criteri di sicurezza impostati nel server Active Directory potrebbero rendere impossibile per il ResetPassword metodo generare una password che soddisfi i criteri. L'implementazione predefinita del GeneratePassword metodo genererà password che soddisfano i criteri password predefiniti nei controller di 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 generata un'eccezione ProviderException .

Si applica a

Vedi anche