ValidatePasswordEventArgs(String, String, Boolean) 建構函式

定義

建立 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 構函式。

適用於

另請參閱