SqlMembershipProvider.ChangePasswordQuestionAndAnswer メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > SqlMembershipProvider.ChangePasswordQuestionAndAnswer メソッドの意味・解説 

SqlMembershipProvider.ChangePasswordQuestionAndAnswer メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

SQL Server メンバシップ データベースでユーザーのパスワードの質問と解答を更新します。

名前空間: System.Web.Security
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Overrides Function
 ChangePasswordQuestionAndAnswer ( _
    username As String, _
    password As String, _
    newPasswordQuestion As String, _
    newPasswordAnswer As String _
) As Boolean
Dim instance As SqlMembershipProvider
Dim username As String
Dim password As String
Dim newPasswordQuestion As String
Dim newPasswordAnswer As String
Dim returnValue As Boolean

returnValue = instance.ChangePasswordQuestionAndAnswer(username, password, newPasswordQuestion,
 newPasswordAnswer)
public override bool ChangePasswordQuestionAndAnswer
 (
    string username,
    string password,
    string newPasswordQuestion,
    string newPasswordAnswer
)
public:
virtual bool ChangePasswordQuestionAndAnswer (
    String^ username, 
    String^ password, 
    String^ newPasswordQuestion, 
    String^ newPasswordAnswer
) override
public boolean ChangePasswordQuestionAndAnswer (
    String username, 
    String password, 
    String newPasswordQuestion, 
    String newPasswordAnswer
)
public override function ChangePasswordQuestionAndAnswer
 (
    username : String, 
    password : String, 
    newPasswordQuestion : String, 
    newPasswordAnswer : String
) : boolean

パラメータ

username

パスワードの質問と解答を変更するユーザー。

password

指定したユーザーのパスワード。

newPasswordQuestion

指定したユーザーの新しいパスワードの質問。

newPasswordAnswer

指定したユーザーの新しいパスワードの解答。

戻り値
更新が成功した場合は true。それ以外の場合は false。password が無効であったり、ユーザーがロックされていたり、ユーザーがデータベースに存在していない場合にも false が返されます。

例外例外
例外の種類条件

System.ArgumentException

username が空の文字列 ("") であるか、コンマを含んでいるか、または 256 文字を超えています。

または

password が空の文字列であるか、または 128 文字を超えています。

または

newPasswordQuestion が空の文字列であるか、または 256 文字を超えています。

または

newPasswordAnswer が空の文字列であるか、または 128 文字を超えています。

または

エンコードされた newPasswordAnswer の長さが 128 文字を超えています。

System.ArgumentNullException

username が null 参照 (Visual Basic では Nothing) です。

または

password が null 参照 (Visual Basic では Nothing) です。

または

newPasswordQuestion が null 参照 (Visual Basic では Nothing) で RequiresQuestionAndAnswer が true です。

または

newPasswordAnswer が null 参照 (Visual Basic では Nothing) で RequiresQuestionAndAnswer が true です。

ProviderException

データベースでパスワードの質問と解答を変更しているときにエラーが発生しました。

解説解説

このメソッドは MembershipUser クラスによって呼び出され、ASP.NET アプリケーションの構成ファイル (Web.config) に指定されている SQL Server データベースでユーザーのパスワードの質問と解答を更新します。

パスワードの質問と解答を要求することにより、ユーザー パスワードを取得またはリセットする際のセキュリティをさらに高めることができます。ユーザー名を作成するときに、パスワードを忘れた場合に備えて、忘れたパスワードを取得したりリセットしたりする際に使用される質問とその解答を設定しておくことができます。ChangePasswordQuestionAndAnswer メソッドは、メンバシップ ユーザーのパスワードの質問と解答を更新します。

正しくないパスワードが ChangePasswordQuestionAndAnswer メソッドに対して入力されると、無効なパスワードの指定回数を追跡する内部カウンタが 1 つインクリメントされます。これにより、ユーザーをロックし、UnlockUser メソッドが呼び出されてロック ステータスが解除されるまでそのユーザーのログオンを禁止できます。ユーザーがロックされていない状態で正しいパスワードが指定されると、無効なパスワードおよび無効なパスワード解答の指定回数を追跡する内部カウンタはゼロにリセットされます。詳細については、MaxInvalidPasswordAttempts プロパティのトピックと PasswordAttemptWindow プロパティのトピックを参照してください。

パスワードの質問の最大長は 256 文字です。パスワードの解答の最大長は 128 文字です。

詳細については、「RequiresQuestionAndAnswer」、「ResetPassword」、および「GetPassword」を参照してください。

すべてのパラメータ値について先頭と末尾の空白はトリムされます。

使用例使用例

ユーザーのパスワードの質問と解答を更新するコード例を次にします。

メモメモ

このコード例では、Membership クラスの Provider プロパティを使用して、Web.config ファイル内の defaultProvider として指定されている SqlMembershipProvider を呼び出します。既定のプロバイダに SqlMembershipProvider 型としてアクセスする必要がある場合は、Membership クラスの Provider プロパティをキャストできます。固有のプロバイダの種類として構成されたその他のプロバイダにアクセスする場合、Membership クラスの Providers プロパティを使用して、参照されたプロバイダを固有プロバイダの種類としてキャストすることによって、構成された名前でアクセスできます。

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security"
 %>
<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>
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>

<form 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="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<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>
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>

<form 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>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SqlMembershipProvider クラス
SqlMembershipProvider メンバ
System.Web.Security 名前空間
その他の技術情報
メンバシップの概要



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

SqlMembershipProvider.ChangePasswordQuestionAndAnswer メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlMembershipProvider.ChangePasswordQuestionAndAnswer メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS