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입니다.

예제

다음 코드 예제에서는 이벤트에 전달할 새 ValidatePasswordEventArgs 개체를 만드는 샘플 ChangePassword 구현을 보여 집니다ValidatingPassword.

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

설명

ValidatePasswordEventArgs 생성자는 , ChangePasswordResetPassword 메서드 구현의 CreateUser멤버 자격 공급자 구현에서 사용됩니다.

적용 대상

추가 정보