ValidatePasswordEventArgs(String, String, Boolean) 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立 ValidatePasswordEventArgs 類別的新執行個體。
public:
ValidatePasswordEventArgs(System::String ^ userName, System::String ^ password, bool isNewUser);
public ValidatePasswordEventArgs (string userName, string password, bool isNewUser);
new System.Web.Security.ValidatePasswordEventArgs : string * string * bool -> System.Web.Security.ValidatePasswordEventArgs
Public Sub New (userName As String, password As String, isNewUser As Boolean)
參數
- userName
- String
目前建立使用者、變更密碼或重設密碼動作成員使用者名稱。
- password
- String
指定之成員使用者的新密碼。
- isNewUser
- Boolean
如果事件發生時正在建立新的使用者,則為 true
;否則為 false
。
範例
下列程式代碼範例示範範例ChangePassword實作,此實作會建立要傳遞至ValidatingPassword事件的新ValidatePasswordEventArgs物件。
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 Users " +
" 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;
}
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 Users " & _
" 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
備註
、 和 ResetPassword 方法實作中的ChangePasswordCreateUser成員資格提供者實作會使用建ValidatePasswordEventArgs構函式。