SqlMembershipProvider.ChangePasswordQuestionAndAnswer Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Met à jour la question et la réponse de mot de passe d'un utilisateur dans la base de données d'appartenances SQL Server.
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
Paramètres
- username
- String
Utilisateur pour lequel modifier la question de mot de passe et la réponse à celle-ci.
- password
- String
Mot de passe de l'utilisateur spécifié.
- newPasswordQuestion
- String
Nouvelle question de mot de passe pour l’utilisateur spécifié.
- newPasswordAnswer
- String
Nouvelle réponse à la question de mot de passe pour l’utilisateur spécifié.
Retours
true
si la mise à jour a réussi ; sinon, false
. La valeur false
est également retournée si le password
est incorrect, si l'utilisateur est verrouillé ou si l'utilisateur n'existe pas dans la base de données.
Exceptions
username
est une chaîne vide (""), contient une virgule ou dépasse 256 caractères.
- ou -
password
est une chaîne vide ou dont la longueur dépasse 128 caractères.
- ou -
newPasswordQuestion
est une chaîne vide ou dont la longueur dépasse 256 caractères.
- ou -
newPasswordAnswer
est une chaîne vide ou dont la longueur dépasse 128 caractères.
- ou -
La version encodée de newPasswordAnswer
dépasse 128 caractères.
username
a la valeur null
.
-ou-
password
a la valeur null
.
- ou -
newPasswordQuestion
a la valeur null
et RequiresQuestionAndAnswer a la valeur true
.
- ou -
newPasswordAnswer
a la valeur null
et RequiresQuestionAndAnswer a la valeur true
.
Une erreur s'est produite pendant la modification de la question et de la réponse de mot de passe dans la base de données.
Exemples
L’exemple de code suivant met à jour la question et la réponse de mot de passe pour un utilisateur.
Notes
Cet exemple utilise la Provider propriété de la Membership classe pour appeler le SqlMembershipProvider spécifié comme defaultProvider
dans le fichier Web.config. Si vous devez accéder au fournisseur par défaut en tant que type SqlMembershipProvider, vous pouvez caster la Provider propriété de la Membership classe . Pour accéder à d’autres fournisseurs configurés en tant que type de fournisseur spécifique, vous pouvez y accéder par leur nom configuré avec la Providers propriété de la Membership classe et les caster en tant que type de fournisseur spécifique.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void ChangePasswordQuestion_OnClick(object sender, EventArgs args)
{
try
{
if (Membership.Provider.ChangePasswordQuestionAndAnswer(User.Identity.Name,
PasswordTextbox.Text,
QuestionTextbox.Text,
AnswerTextbox.Text))
Msg.Text = "Password question and answer changed.";
else
Msg.Text = "Change failed. Please reenter your values and try again.";
}
catch (System.Configuration.Provider.ProviderException e)
{
Msg.Text = "Change failed. Please reenter your values and try again.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Change Password Question and Answer for <%=User.Identity.Name%></h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td>Password:</td>
<td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
ControlToValidate="PasswordTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Question:</td>
<td><asp:Textbox id="QuestionTextbox" MaxLength="256" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="QuestionRequiredValidator" runat="server"
ControlToValidate="QuestionTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Answer:</td>
<td><asp:Textbox id="AnswerTextbox" MaxLength="128" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
ControlToValidate="AnswerTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="ChangePasswordQuestionButton"
Text="Change Password Question and Answer"
OnClick="ChangePasswordQuestion_OnClick"
runat="server" /></td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub ChangePasswordQuestion_OnClick(sender As Object, args As EventArgs)
Try
If Membership.Provider.ChangePasswordQuestionAndAnswer(User.Identity.Name, _
PasswordTextbox.Text, _
QuestionTextbox.Text, _
AnswerTextbox.Text) Then
Msg.Text = "Password question and answer changed."
Else
Msg.Text = "Change failed. Please reenter your values and try again."
End If
Catch e As System.Configuration.Provider.ProviderException
Msg.Text = "Change failed. Please reenter your values and try again."
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Change Password Question and Answer for <%=User.Identity.Name%></h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td>Password:</td>
<td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
ControlToValidate="PasswordTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Question:</td>
<td><asp:Textbox id="QuestionTextbox" MaxLength="256" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="QuestionRequiredValidator" runat="server"
ControlToValidate="QuestionTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Answer:</td>
<td><asp:Textbox id="AnswerTextbox" MaxLength="128" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
ControlToValidate="AnswerTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="ChangePasswordQuestionButton"
Text="Change Password Question and Answer"
OnClick="ChangePasswordQuestion_OnClick"
runat="server" /></td>
</tr>
</table>
</form>
</body>
</html>
Remarques
Cette méthode est appelée par la MembershipUser classe pour mettre à jour la question et la réponse de mot de passe d’un utilisateur dans la base de données SQL Server spécifiée dans le fichier de configuration de l’application ASP.NET (Web.config). La réponse de mot de passe est chiffrée au format spécifié dans la PasswordFormat propriété .
L’exigence d’une question et d’une réponse de mot de passe fournit une couche de sécurité supplémentaire lors de la récupération ou de la réinitialisation du mot de passe d’un utilisateur. Lors de la création d’un nom d’utilisateur, un utilisateur peut fournir une question-réponse qui peut être utilisée ultérieurement pour récupérer ou réinitialiser un mot de passe oublié. La ChangePasswordQuestionAndAnswer méthode met à jour la question et la réponse de mot de passe pour un utilisateur d’appartenance.
Si un mot de passe incorrect est fourni à la ChangePasswordQuestionAndAnswer méthode, les compteurs internes qui suivent les tentatives de mot de passe non valides sont incrémentés d’un. Cela peut entraîner le verrouillage de l’utilisateur et l’impossibilité de se connecter tant que l’état du verrou n’est pas effacé en appelant la UnlockUser méthode. Si le mot de passe correct est fourni et que l’utilisateur n’est pas actuellement verrouillé, les compteurs internes qui suivent les tentatives de mot de passe et de réponse de mot de passe non valides sont réinitialisés à zéro. Pour plus d’informations, consultez les propriétés MaxInvalidPasswordAttempts et PasswordAttemptWindow.
La longueur maximale de la question de mot de passe est de 256 caractères. La longueur maximale de la réponse de mot de passe est de 128 caractères.
Pour plus d'informations, consultez RequiresQuestionAndAnswer, ResetPassword et GetPassword.
Les espaces de début et de fin sont supprimés de toutes les valeurs de paramètre.