ValidatePasswordEventArgs クラス
アセンブリ: System.Web (system.web.dll 内)


ValidatingPassword イベントは、メンバシップ プロバイダの CreateUser、ChangePassword、または ResetPassword の各メソッドが呼び出されたときに発生します。
ValidatingPassword イベントを処理して、メンバシップ ユーザーのパスワードの形式と値を検証できます。
ValidatingPassword イベントで、Cancel プロパティを true に設定することにより、現在の CreateUser、ChangePassword、または 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; } }


System.EventArgs
System.Web.Security.ValidatePasswordEventArgs


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ValidatePasswordEventArgs コンストラクタ
アセンブリ: System.Web (system.web.dll 内)

Dim userName As String Dim password As String Dim isNewUser As Boolean Dim instance As New ValidatePasswordEventArgs(userName, password, isNewUser)
public function ValidatePasswordEventArgs ( userName : String, password : String, isNewUser : boolean )

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; }

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ValidatePasswordEventArgs プロパティ

名前 | 説明 | |
---|---|---|
![]() | Cancel | 現在のユーザー作成、パスワード変更、またはパスワード リセットの各アクションをキャンセルするかどうかを示す値を取得または設定します。 |
![]() | FailureInformation | パスワード検証エラーの理由を説明する例外を取得または設定します。 |
![]() | IsNewUser | ValidatingPassword イベントが CreateUser メソッドの呼び出し中に発生しているかどうかを示す値を取得します。 |
![]() | Password | 現在のユーザー作成、パスワード変更、またはパスワード リセットの各アクションに対するパスワードを取得します。 |
![]() | UserName | 現在のユーザー作成、パスワード変更、またはパスワード リセットの各アクションに対するメンバシップ ユーザーの名前を取得します。 |

ValidatePasswordEventArgs メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

ValidatePasswordEventArgs メンバ
MembershipProvider クラスの ValidatingPassword イベントのイベント データを提供します。
ValidatePasswordEventArgs データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Cancel | 現在のユーザー作成、パスワード変更、またはパスワード リセットの各アクションをキャンセルするかどうかを示す値を取得または設定します。 |
![]() | FailureInformation | パスワード検証エラーの理由を説明する例外を取得または設定します。 |
![]() | IsNewUser | ValidatingPassword イベントが CreateUser メソッドの呼び出し中に発生しているかどうかを示す値を取得します。 |
![]() | Password | 現在のユーザー作成、パスワード変更、またはパスワード リセットの各アクションに対するパスワードを取得します。 |
![]() | UserName | 現在のユーザー作成、パスワード変更、またはパスワード リセットの各アクションに対するメンバシップ ユーザーの名前を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- ValidatePasswordEventArgsのページへのリンク