ValidatePasswordEventArgsとは? わかりやすく解説

ValidatePasswordEventArgs クラス

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

MembershipProvider クラスの ValidatingPassword イベントイベント データ提供します

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

Public NotInheritable Class
 ValidatePasswordEventArgs
    Inherits EventArgs
Dim instance As ValidatePasswordEventArgs
public sealed class ValidatePasswordEventArgs
 : EventArgs
public ref class ValidatePasswordEventArgs
 sealed : public EventArgs
public final class ValidatePasswordEventArgs
 extends EventArgs
public final class ValidatePasswordEventArgs
 extends EventArgs
解説解説

ValidatingPassword イベントは、メンバシップ プロバイダの CreateUser、ChangePassword、または ResetPassword の各メソッド呼び出されたときに発生します

ValidatingPassword イベント処理してメンバシップ ユーザーパスワード形式と値を検証できます

ValidatingPassword イベントで、Cancel プロパティtrue設定することにより、現在の CreateUserChangePassword、または ResetPassword の各アクションキャンセルできます

Cancel プロパティtrue設定して現在のアクションキャンセルする場合、FailureInformation プロパティに、パスワード検証エラー原因説明する例外設定できます呼び出し元のメソッドは、FailureInformation プロパティ設定され例外スローます。FailureInformation プロパティnull 参照 (Visual Basic では Nothing) である場合呼び出し元は汎用パスワード検証エラー例外スローます。

使用例使用例

次のコード例に、ユーザー入力したパスワード形式検証し必要な形式一致しない場合は処理をキャンセルする ValidatingPassword イベント示します

Public Sub Page_Load()
    AddHandler Membership.ValidatingPassword, _
    New MembershipValidatePasswordEventHandler(AddressOf
 OnValidatePassword)
End Sub

Public Sub OnValidatePassword(sender As
 Object, _
                               args As ValidatePasswordEventArgs)
  Dim r As System.Text.RegularExpressions.Regex
 =  _
    New System.Text.RegularExpressions.Regex("(?=.{6
,})(?=(.*\d){1,})(?=(.*\W){1,})")
         

  If Not r.IsMatch(args.Password) Then
    args.FailureInformation = _
      New HttpException("Password must be at
 least 6 characters long and " & _
                        "contain at least one number and one special
 character.")
    args.Cancel = True
  End If
End Sub
public void Page_Load()
{
  Membership.ValidatingPassword +=
    new MembershipValidatePasswordEventHandler(OnValidatePassword);
}

public void OnValidatePassword(object sender
,
                              ValidatePasswordEventArgs args)
{
  System.Text.RegularExpressions.Regex r =
    new System.Text.RegularExpressions.Regex(@"(?=.{6,})(?=(.*\d){1
,})(?=(.*\W){1,})");


  if (!r.IsMatch(args.Password))
  {
    args.FailureInformation =
      new HttpException("Password must be at least 6 characters
 long and " +
                        "contain at least one number and one special character.");
    args.Cancel = true;
  }
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   System.EventArgs
    System.Web.Security.ValidatePasswordEventArgs
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ValidatePasswordEventArgs コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

ValidatePasswordEventArgs クラス新しインスタンス作成します

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

解説解説

ValidatePasswordEventArgs コンストラクタは、CreateUser、ChangePassword、および ResetPassword の各メソッド実装におけるメンバシップ プロバイダ実装によって使用されます。

使用例使用例

次のコード例に、新しValidatePasswordEventArgs オブジェクト作成し、ValidatingPassword イベントに渡すサンプル ChangePassword 実装示します

Public Overrides Function
 ChangePassword(username As String, _
                                         oldPwd As String,
 _
                                         newPwd As String)
 As Boolean
  
  If Not ValidateUser(username, oldPwd) Then
    Return False
  End If

  Dim args As ValidatePasswordEventArgs = _
    New ValidatePasswordEventArgs(username, newPwd, True)

  OnValidatingPassword(args)
  
  If args.Cancel Then
    If Not args.FailureInformation Is
 Nothing Then
      Throw args.FailureInformation
    Else
      Throw New MembershipPasswordException("Change
 password canceled due to New password validation failure.")
    End If
  End If


  Dim conn As OdbcConnection = New
 OdbcConnection(ConnectionString)
  Dim cmd As OdbcCommand = New
 OdbcCommand("UPDATE [" & TableName & "]"
  & _
                       " SET Password = ?, LastPasswordChangedDate
 = ? " & _
                       " WHERE Username = ? AND Password = ? AND
 ApplicationName = ?", conn)

  cmd.Parameters.Add("@Password", OdbcType.VarChar,
 128).Value = EncodePassword(newPwd)
  cmd.Parameters.Add("@LastPasswordChangedDate", OdbcType.DateTime).Value
 = DateTime.Now
  cmd.Parameters.Add("@Username", OdbcType.VarChar,
 255).Value = username
  cmd.Parameters.Add("@OldPassword", OdbcType.VarChar,
 128).Value = oldPwd
  cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar,
 255).Value = ApplicationName


  Dim rowsAffected As Integer
 = 0

  Try
    conn.Open()

    rowsAffected = cmd.ExecuteNonQuery()
  Catch e As OdbcException
    ' Handle exception.
  Finally
    conn.Close()
  End Try

  If rowsAffected > 0 Then Return
 True

  Return False
End Function
public override bool ChangePassword(string
 username, string oldPwd, string newPwd)
{
  if (!ValidateUser(username, oldPwd))
  {
    return false;
  }

  ValidatePasswordEventArgs args =
    new ValidatePasswordEventArgs(username, newPwd, true);

  OnValidatingPassword(args);

  if (args.Cancel)
    if (args.FailureInformation != null)
      throw args.FailureInformation;
    else
      throw new MembershipPasswordException("Change password
 canceled due to new password validation failure.");


  OdbcConnection conn = new OdbcConnection(ConnectionString);
  OdbcCommand cmd = new OdbcCommand("UPDATE [" + tableName
 + "]" +
            " SET Password = ?, LastPasswordChangedDate = ? " +
            " WHERE Username = ? AND Password = ? AND ApplicationName = ?",
 conn);

  cmd.Parameters.Add("@Password", OdbcType.VarChar, 128).Value = EncodePassword(newPwd);
  cmd.Parameters.Add("@LastPasswordChangedDate", OdbcType.DateTime).Value
 = DateTime.Now;
  cmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username;
  cmd.Parameters.Add("@OldPassword", OdbcType.VarChar, 128).Value = oldPwd;
  cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value =
 ApplicationName;


  int rowsAffected = 0;

  try
  {
    conn.Open();

    rowsAffected = cmd.ExecuteNonQuery();
  }
  catch (OdbcException)
  {
    // Handle exception.
  }
  finally
  {
    conn.Close();
  }

  if (rowsAffected > 0)
  {
    return true;
  }

  return false;
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ValidatePasswordEventArgs プロパティ


ValidatePasswordEventArgs メソッド


ValidatePasswordEventArgs メンバ

MembershipProvider クラスの ValidatingPassword イベントイベント データ提供します

ValidatePasswordEventArgs データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ValidatePasswordEventArgs ValidatePasswordEventArgs クラス新しインスタンス作成します
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ValidatePasswordEventArgs クラス
System.Web.Security 名前空間

その他の技術情報

メンバシップ概要



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ValidatePasswordEventArgs」の関連用語

ValidatePasswordEventArgsのお隣キーワード
検索ランキング

   

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



ValidatePasswordEventArgsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS