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

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

SqlMembershipProvider.ResetPassword メソッド

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

ユーザーのパスワードを、自動的に生成された新しいパスワードにリセットします。

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

Public Overrides Function
 ResetPassword ( _
    username As String, _
    passwordAnswer As String _
) As String
Dim instance As SqlMembershipProvider
Dim username As String
Dim passwordAnswer As String
Dim returnValue As String

returnValue = instance.ResetPassword(username, passwordAnswer)
public override string ResetPassword (
    string username,
    string passwordAnswer
)
public:
virtual String^ ResetPassword (
    String^ username, 
    String^ passwordAnswer
) override
public String ResetPassword (
    String username, 
    String passwordAnswer
)
public override function ResetPassword (
    username : String, 
    passwordAnswer : String
) : String

パラメータ

username

パスワードをリセットするユーザー。

passwordAnswer

指定したユーザーに対するパスワードの解答。

戻り値
指定したユーザーの新しいパスワード。

例外例外
例外の種類条件

System.Web.Security.MembershipPasswordException

passwordAnswer が無効です。

または

ユーザー アカウントが現在ロックされています。

System.NotSupportedException

EnablePasswordReset が false に設定されています。

System.Configuration.Provider.ProviderException

username がメンバシップ データベース内に見つかりません。

または

パスワード変更アクションが ValidatingPassword イベントのサブスクライバによってキャンセルされ、かつ FailureInformation プロパティが null 参照 (Visual Basic では Nothing) です。

または

データベースからパスワードを取得しているときにエラーが発生しました。

System.ArgumentException

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

または

passwordAnswer が空の文字列であるか 128 文字を超えていて、かつ RequiresQuestionAndAnswer が true です。

または

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

System.ArgumentNullException

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

または

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

解説解説

このメソッドは Membership クラスによって呼び出され、ASP.NET アプリケーションの構成ファイル (Web.config) に指定されている SQL Server データベース内のユーザーのパスワードを、ランダムに生成された新しい値にリセットします。新しいパスワードが返されます。

メモメモ

ResetPassword メソッドにより生成されたランダム パスワードは、PasswordStrengthRegularExpression プロパティの正規表現に合格するとは限りません。ただし、ランダム パスワードは、MinRequiredPasswordLength プロパティおよび MinRequiredNonAlphanumericCharacters プロパティで設定された基準は満たしています。

ResetPassword メソッドは、一般に PasswordFormat プロパティが Hashed の場合に使用されます。ハッシュされるパスワードをユーザーが忘れた場合、ユーザーはパスワードを取得できません。ただし、ユーザーが正しいパスワードの解答を入力した場合、プロバイダ側で、自動的に生成された新しいパスワードにパスワードをリセットできます。

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

ResetPassword メソッドは、最初に Membership クラスの Provider プロパティから SqlMembershipProvider インスタンスの参照を取得することにより、直接呼び出すことができます。生成されるパスワードは 14 文字以上または MinRequiredPasswordLength プロパティで指定されている長さ以上になり、MinRequiredNonAlphanumericCharacters プロパティで指定されている数の英数字以外の文字を含みます。PasswordStrengthRegularExpression プロパティが指定されている場合、このパスワードがその正規表現に合格するかどうかについては保証されません。

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

使用例使用例

ユーザーのパスワードをリセットし、自動的に生成される新しいパスワードを返すコード例を次に示します。

メモメモ

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

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security"
 %>
<script runat="server">

Public Sub Page_Load(sender As
 Object, args As EventArgs)

  If Not Membership.EnablePasswordReset Then
    FormsAuthentication.RedirectToLoginPage()
  End If

  Msg.Text = ""

  If Not IsPostBack Then
    Msg.Text = "Please enter a user name."
  Else
    VerifyUsername()
  End If

End Sub


Public Sub VerifyUsername()

    Dim user As MembershipUser = Membership.GetUser(UsernameTextBox.Text,
 False)

    If user Is Nothing Then
      Msg.Text = "The user name " & Server.HtmlEncode(UsernameTextBox.Text)
 & " was not found. Please check the value and reenter your
 user name."

      QuestionLabel.Text = ""
      QuestionLabel.Enabled = False
      AnswerTextBox.Enabled = False
      ResetPasswordButton.Enabled = False
    Else
      QuestionLabel.Text = user.PasswordQuestion
      QuestionLabel.Enabled = True
      AnswerTextBox.Enabled = True
      ResetPasswordButton.Enabled = True
    End If

End Sub


Public Sub ResetPassword_OnClick(sender As
 Object, args As EventArgs)

  Dim newPassword As String
 = ""

  Try
    newPassword = Membership.Provider.ResetPassword(UsernameTextBox.Text, AnswerTextBox.Text)
  Catch e As NotSupportedException
    Msg.Text = "An error has occurred resetting your password:
 " & e.Message & "." & _
               "Please check your values and try again."
  Catch e As MembershipPasswordException
    Msg.Text = "Invalid password answer. Please reenter the answer
 and try again."
    Return
  Catch e As System.Configuration.Provider.ProviderException
    Msg.Text = "The specified user name does not exist. Please
 check your value and try again."
  End Try

  If newPassword <> "" Then
    Msg.Text = "Password reset. Your new password is: "
 & Server.HtmlEncode(newPassword)
  Else
    Msg.Text = "Password reset failed. Please reenter your values
 and try again."
  End If

End Sub


</script>
<html>
<head>
<title>Sample: Reset Password</title>
</head>
<body>

<form runat="server">
  <h3>Reset Password</h3>

  <asp:Label id="Msg" runat="server"
 ForeColor="maroon" /><BR>

  Username: <asp:Textbox id="UsernameTextBox" Columns="30"
 runat="server" AutoPostBack="True"
 />
            <asp:RequiredFieldValidator id="UsernameRequiredValidator"
 runat="server"
                                        ControlToValidate="UsernameTextBox"
 ForeColor="red"
                                        Display="Static"
 ErrorMessage="Required" /><BR>

  Password Question: <B><asp:Label id="QuestionLabel"
 runat="server" /></B><BR>

  Answer: <asp:TextBox id="AnswerTextBox" Columns="60"
 runat="server" Enabled="False"
 />
          <asp:RequiredFieldValidator id="AnswerRequiredValidator"
 runat="server"
                                      ControlToValidate="AnswerTextBox"
 ForeColor="red"
                                      Display="Static"
 ErrorMessage="Required" Enabled="False"
 /><BR>

  <asp:Button id="ResetPasswordButton" Text="Reset
 Password" 
              OnClick="ResetPassword_OnClick" runat="server"
 Enabled="False" />

</form>

</body>
</html>
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">

public void Page_Load(object sender, EventArgs
 args)
{
  if (!Membership.EnablePasswordReset)
  {
    FormsAuthentication.RedirectToLoginPage();
  }

  Msg.Text = "";

  if (!IsPostBack)
  {
    Msg.Text = "Please enter a user name.";
  }
  else
  {
    VerifyUsername();
  }
}


public void VerifyUsername()
{
    MembershipUser user = Membership.GetUser(UsernameTextBox.Text, false);

    if (user == null)
    {
      Msg.Text = "The user name " + Server.HtmlEncode(UsernameTextBox.Text)
 + " was not found. Please check the value and reenter your user name.";

      QuestionLabel.Text = "";
      QuestionLabel.Enabled = false;
      AnswerTextBox.Enabled = false;
      ResetPasswordButton.Enabled = false;
    }
    else
    {
      QuestionLabel.Text = user.PasswordQuestion;
      QuestionLabel.Enabled = true;
      AnswerTextBox.Enabled = true;
      ResetPasswordButton.Enabled = true;
    }
}

public void ResetPassword_OnClick(object sender,
 EventArgs args)
{
  string newPassword = "";

  try
  {
    newPassword = Membership.Provider.ResetPassword(UsernameTextBox.Text, AnswerTextBox.Text);
  }
  catch (NotSupportedException e)
  {
    Msg.Text = "An error has occurred resetting your password: " + e.Message
 + "." +
               "Please check your values and try again.";
  }
  catch (MembershipPasswordException e)
  {
    Msg.Text = "Invalid password answer. Please reenter the answer and try
 again.";
    return;
  }
  catch (System.Configuration.Provider.ProviderException e)
  {
    Msg.Text = "The specified user name does not exist. Please check your value
 and try again.";
  }

  if (newPassword != "")
  {
    Msg.Text = "Password reset. Your new password is: "
 + Server.HtmlEncode(newPassword);
  }
  else
  {
    Msg.Text = "Password reset failed. Please reenter your values and try
 again.";
  }
}


</script>
<html>
<head>
<title>Sample: Reset Password</title>
</head>
<body>

<form runat="server">
  <h3>Reset Password</h3>

  <asp:Label id="Msg" runat="server" ForeColor="maroon"
 /><BR>

  Username: <asp:Textbox id="UsernameTextBox" Columns="30"
 runat="server" AutoPostBack="true" />
            <asp:RequiredFieldValidator id="UsernameRequiredValidator"
 runat="server"
                                        ControlToValidate="UsernameTextBox"
 ForeColor="red"
                                        Display="Static" ErrorMessage="Required"
 /><BR>

  Password Question: <B><asp:Label id="QuestionLabel" runat="server"
 /></B><BR>

  Answer: <asp:TextBox id="AnswerTextBox" Columns="60" runat="server"
 Enabled="false" />
          <asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
                                      ControlToValidate="AnswerTextBox"
 ForeColor="red"
                                      Display="Static" ErrorMessage="Required"
 Enabled="false" /><BR>

  <asp:Button id="ResetPasswordButton" Text="Reset Password"
 
              OnClick="ResetPassword_OnClick" runat="server"
 Enabled="false" />

</form>

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



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

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

   

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



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

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

©2026 GRAS Group, Inc.RSS