SqlMembershipProvider.ChangePasswordQuestionAndAnswer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
パラメーター
- username
- String
パスワードの質問と回答を変更するユーザー。
- password
- String
指定したユーザーのパスワード。
- newPasswordQuestion
- String
指定したユーザーの新しいパスワードの質問。
- newPasswordAnswer
- String
指定したユーザーの新しいパスワードの回答。
戻り値
更新が正常に実行された場合は true
、それ以外の場合は false
。
password
が無効であったり、ユーザーがロックされていたり、ユーザーがデータベースに存在していない場合にも false
が返されます。
例外
username
が空の文字列 ("") であるか、コンマを含んでいるか、または 256 文字を超えています。
- または -
password
が空の文字列であるか、または 128 文字を超えています。
- または -
newPasswordQuestion
が空の文字列であるか、または 256 文字を超えています。
- または -
newPasswordAnswer
が空の文字列であるか、または 128 文字を超えています。
- または -
エンコードされた newPasswordAnswer
の長さが 128 文字を超えています。
username
が null
です。
または
password
は null
です。
- または -
newPasswordQuestion
が null
で、RequiresQuestionAndAnswer が true
です。
- または -
newPasswordAnswer
が null
で、RequiresQuestionAndAnswer が true
です。
データベースでパスワードの質問と解答を変更しているときにエラーが発生しました。
例
次のコード例では、ユーザーのパスワードの質問と回答を更新します。
注意
この例では、 Provider クラスの プロパティを Membership 使用して、 SqlMembershipProvider Web.config ファイル内の として defaultProvider
指定された を呼び出します。 型SqlMembershipProviderとして既定のプロバイダーにアクセスする必要がある場合は、 クラスの プロパティをProviderMembershipキャストできます。 特定のプロバイダーの種類として他の構成済みプロバイダーにアクセスするには、 クラスの プロパティを使用して構成された名前で Providers アクセスし、特定のプロバイダーの Membership 種類としてキャストします。
<%@ 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>
注釈
このメソッドは、 クラスによって呼び出され MembershipUser 、ASP.NET アプリケーションの構成ファイル (Web.config) で指定されている SQL Server データベース内のユーザーのパスワードの質問と回答を更新します。 パスワード応答は、 プロパティで指定された形式を PasswordFormat 使用して暗号化されます。
パスワードの質問と回答を要求すると、ユーザーのパスワードを取得またはリセットするときにセキュリティ層が強化されます。 ユーザー名を作成するときに、ユーザーは後で忘れたパスワードを取得またはリセットするために使用できる質問と回答を指定できます。 メソッドは ChangePasswordQuestionAndAnswer 、メンバーシップ ユーザーのパスワードの質問と回答を更新します。
メソッドに正しくないパスワードが指定された ChangePasswordQuestionAndAnswer 場合、無効なパスワード試行を追跡する内部カウンターは 1 ずつインクリメントされます。 これにより、ユーザーがロックアウトされ、 メソッドを呼び出 UnlockUser してロック状態がクリアされるまでログオンできなくなる可能性があります。 正しいパスワードが指定され、ユーザーが現在ロックアウトされていない場合、無効なパスワードとパスワード応答の試行を追跡する内部カウンターは 0 にリセットされます。 詳細については、MaxInvalidPasswordAttempts プロパティおよび PasswordAttemptWindow プロパティを参照してください。
パスワードの質問の最大長は 256 文字です。 パスワード応答の最大長は 128 文字です。
詳細については、「RequiresQuestionAndAnswer「ResetPasswordおよび「GetPassword」を参照してください。
先頭と末尾のスペースは、すべてのパラメーター値からトリミングされます。
適用対象
こちらもご覧ください
.NET