Partager via


ActiveDirectoryMembershipProvider.ResetPassword(String, String) Méthode

Définition

Réinitialise le mot de passe d’un utilisateur et affecte un nouveau mot de passe généré automatiquement.

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

Paramètres

username
String

Utilisateur pour lequel réinitialiser le mot de passe.

passwordAnswer
String

Réponse de mot de passe de l'utilisateur spécifié.

Retours

Nouveau mot de passe de l’utilisateur spécifié.

Exceptions

La méthode ResetPassword(String, String) est appelée avant l'initialisation de l'instance de ActiveDirectoryMembershipProvider.

La valeur de la propriété EnablePasswordReset est false.

passwordAnswer a la valeur null.

-ou-

username a la valeur null.

passwordAnswer est vide après avoir été ajusté.

- ou -

passwordAnswer dépasse 128 caractères.

- ou -

username est vide ou dépasse la longueur maximale autorisée pour les noms d'utilisateurs (généralement 256 caractères).

- ou -

username contient des virgules.

- ou -

Le nom d'utilisateur est mappé à userPrincipalName, mais le paramètre username contient des barres obliques inverses.

L'utilisateur est verrouillé car le seuil de tentatives de connexion qui ont échoué ou le seuil de tentatives de réinitialisation du mot de passe et de la réponse a été dépassé.

- ou -

passwordAnswer ne correspond pas à la réponse de mot de passe stockée.

L'utilisateur spécifié dans username n'existe pas dans le magasin de données Active Directory.

- ou -

Un mot de passe généré ne passe pas de gestionnaire de validation personnalisé.

- ou -

Le mot de passe généré n'est pas assez complexe pour satisfaire aux stratégies de mot de passe personnalisées définies sur le serveur Active Directory.

- ou -

Une connexion sécurisée ne peut pas être établie à un serveur Active Directory en mode application pour définir le nouveau mot de passe.

Une exception non gérée s'est produite.

Remarques

La méthode est appelée par la Membership classe pour réinitialiser le mot de passe d’un utilisateur dans le magasin de données Active Directory à une nouvelle valeur générée de manière aléatoire. Le nouveau mot de passe est retourné.

Notes

Il n’est pas garanti que le mot de passe aléatoire créé par la ResetPassword méthode passe l’expression régulière dans la PasswordStrengthRegularExpression propriété . Toutefois, le mot de passe aléatoire répond aux critères établis par les MinRequiredPasswordLength propriétés et MinRequiredNonAlphanumericCharacters .

Si une réponse incorrecte est fournie à la ResetPassword méthode, le compteur interne qui effectue le suivi des tentatives mot de passe-réponse non valides est incrémenté d’un. Cela peut entraîner l’impossibilité pour l’utilisateur de se connecter tant que l’état du verrou n’est pas effacé par un appel à la UnlockUser méthode . Si la réponse de mot de passe correcte est fournie et que l’utilisateur n’est pas actuellement verrouillé, le compteur interne qui effectue le suivi des tentatives de mot de passe non valides est réinitialisé à zéro. Pour plus d’informations, consultez les propriétés MaxInvalidPasswordAttempts et PasswordAttemptWindow.

Les espaces de début et de fin sont supprimés de toutes les valeurs de paramètre.

Vous pouvez appeler la ResetPassword méthode directement en obtenant d’abord une référence à l’instance ActiveDirectoryMembershipProvider à partir de la Membership.Provider propriété .

Le fournisseur utilise une recherche de sous-arborescence commençant au point de recherche spécifié dans la chaîne de connexion. Consultez la rubrique de ActiveDirectoryMembershipProvider classe pour plus d’informations sur les chaînes de connexion.

Pour définir des mots de passe sur un serveur Active Directory, l’attribut connectionProtection doit être défini sur SignAndSeal.

Lorsque vous utilisez un serveur ADAM, l’attribut connectionProtection peut être défini sur None, mais uniquement si vous configurez explicitement le serveur ADAM pour autoriser les modifications de mot de passe sur les connexions non sécurisées.

Important

Vous ne pouvez pas réinitialiser les mots de passe, sauf si les informations d’identification utilisées pour se connecter au serveur Active Directory disposent de droits d’administrateur de domaine (non recommandé) ou du droit d’accès « réinitialiser le mot de passe ».

Pour réinitialiser un mot de passe, toutes les conditions suivantes doivent être remplies :

  • La propriété EnablePasswordReset doit être définie sur true.

  • Le schéma Active Directory doit être modifié pour contenir des attributs permettant de stocker la question et la réponse de mot de passe, ainsi que les trois champs de suivi pour les modifications de réponse de mot de passe.

  • Les attributeMapPasswordQuestionattributs , attributeMapPasswordAnswerattributeMapFailedPasswordAnswerCount, attributeMapFailedPasswordAnswerTime, et attributeMapFailedPasswordAnswerLockedTime doivent être définis dans le fichier de configuration de l’application.

  • La propriété RequiresQuestionAndAnswer doit être définie sur true.

  • Le contexte de sécurité pour la connexion au magasin de données Active Directory (le compte de processus ou les informations d’identification explicites) doit disposer de privilèges suffisants pour modifier les mots de passe. Les informations d’identification utilisées pour se connecter au serveur Active Directory disposent de droits d’administrateur de domaine (non recommandé) ou du droit d’accès « réinitialiser le mot de passe ».

Notes

Les stratégies de sécurité définies sur le serveur Active Directory peuvent empêcher la ResetPassword méthode de générer un mot de passe conforme aux stratégies. L’implémentation par défaut de la GeneratePassword méthode génère des mots de passe qui répondent aux stratégies de mot de passe par défaut sur les contrôleurs de domaine exécutant Windows Server 2003 SP1. Si le mot de passe ne peut pas être réinitialisé en raison de stratégies de sécurité sur le serveur Active Directory, une ProviderException valeur est levée.

S’applique à

Voir aussi