ChangePassword.ChangingPassword Событие

Определение

Происходит, прежде чем пароль учетной записи пользователя изменяется поставщиком членства.Occurs before the password for a user account is changed by the membership provider.

public:
 event System::Web::UI::WebControls::LoginCancelEventHandler ^ ChangingPassword;
public event System.Web.UI.WebControls.LoginCancelEventHandler ChangingPassword;
member this.ChangingPassword : System.Web.UI.WebControls.LoginCancelEventHandler 
Public Custom Event ChangingPassword As LoginCancelEventHandler 

Тип события

LoginCancelEventHandler

Примеры

В следующем примере кода показано, как использовать страницу ASP.NET, которая использует ChangePassword элемент управления, и включает обработчик для ChangingPassword события с именем ChangingPassword .The following code example shows how to use an ASP.NET page that uses a ChangePassword control, and includes a handler for the ChangingPassword event named ChangingPassword. Код в обработчике событий сравнивает старый пароль, хранящийся в CurrentPassword свойстве, с новым паролем, хранящимся в NewPassword .The code in the event handler compares the old password stored in the CurrentPassword property to the new password stored in NewPassword. Если два пароля совпадают, изменение пароля завершается неудачей.If the two passwords are the same, changing the password fails.

ChangePasswordЭлемент управления задает для DisplayUserName свойства значение true , чтобы разрешить пользователям вводить свое имя пользователя.The ChangePassword control sets the DisplayUserName property to true to enable users to enter their user name. Это означает, что пользователю не нужно входить в систему для просмотра страницы.This means that the user does not have to log on to view the page.

В примере кода предполагается, что веб-сайт ASP.NET настроен для использования проверки подлинности членства и форм ASP.NET, а также что пользователь создал имя и пароль, которые вам известны.The code example assumes that the ASP.NET Web site has been configured to use ASP.NET membership and Forms authentication, and that a user has been created whose name and password are known to you. Дополнительные сведения см. в разделе Практические руководства. Реализация простой проверки подлинности с помощью форм.For more information, see How to: Implement Simple Forms Authentication.

<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {
    //Manually register the event-handling methods.
    ChangePassword1.ChangingPassword += new LoginCancelEventHandler(this._ChangingPassword);
  }

  void _ChangingPassword(Object sender, LoginCancelEventArgs e)
  {
    if (ChangePassword1.CurrentPassword.ToString() == ChangePassword1.NewPassword.ToString())
    {
      Message1.Visible = true;
      Message1.Text = "Old password and new password must be different.  Please try again.";
      e.Cancel = true;
    }
    else
    {
      //This line prevents the error showing up after a first failed attempt.
      Message1.Visible = false;
    }
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>ChangePassword including a ChangingPassword event handler</title>
</head>
<body>
  <form id="form1" runat="server">
  <div style="text-align:center">

    <h1>ChangePassword</h1>
    
    <asp:LoginView ID="LoginView1" Runat="server" 
      Visible="true">
      <LoggedInTemplate>
        <asp:LoginName ID="LoginName1" Runat="server" FormatString="You are logged in as {0}." />
        <br />
      </LoggedInTemplate>
      <AnonymousTemplate>
        You are not logged in
      </AnonymousTemplate>
    </asp:LoginView><br />
    
    <asp:ChangePassword ID="ChangePassword1" Runat="server"
      BorderStyle="Solid" 
      BorderWidth="1" 
      CancelDestinationPageUrl="~/Default.aspx" 
      DisplayUserName="true" 
      OnChangingPassword="_ChangingPassword"
      ContinueDestinationPageUrl="~/Default.aspx" >
    </asp:ChangePassword><br />
  
    <asp:Label ID="Message1" Runat="server" ForeColor="Red" /><br />

    <asp:HyperLink ID="HyperLink1" Runat="server" 
      NavigateUrl="~/Default.aspx">
      Home
    </asp:HyperLink>
    
  </div>
  </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Public Sub PageLoad(ByVal Sender As Object, ByVal e As EventArgs)
    'Manually register the event-handling methods.
    AddHandler ChangePassword1.ChangingPassword, AddressOf Me._ChangingPassword
  End Sub

  Public Sub _ChangingPassword(ByVal Sender As Object, ByVal e As LoginCancelEventArgs)
    If (ChangePassword1.CurrentPassword.ToString() = ChangePassword1.NewPassword.ToString) Then
      Message1.Visible = True
      Message1.Text = "Old password and new password must be different.  Please try again."
      e.Cancel = True
    Else
      'This line prevents the error showing up after a first failed attempt.
      Message1.Visible = False
    End If
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>ChangePassword including a ChangingPassword event handler</title>
</head>
<body>
  <form id="form1" runat="server">
  <div style="text-align:center">

    <h1>ChangePassword</h1>
    
    <asp:LoginView ID="LoginView1" Runat="server" 
      Visible="true">
      <LoggedInTemplate>
        <asp:LoginName ID="LoginName1" Runat="server" FormatString="You are logged in as {0}." />
        <br />
      </LoggedInTemplate>
      <AnonymousTemplate>
        You are not logged in
      </AnonymousTemplate>
    </asp:LoginView><br />
    
    <asp:ChangePassword ID="ChangePassword1" Runat="server"
      BorderStyle="Solid" 
      BorderWidth="1" 
      CancelDestinationPageUrl="~/Default.aspx" 
      DisplayUserName="true" 
      OnChangingPassword="_ChangingPassword"
      ContinueDestinationPageUrl="~/Default.aspx" >
    </asp:ChangePassword><br />
  
    <asp:Label ID="Message1" Runat="server" ForeColor="Red" /><br />

    <asp:HyperLink ID="HyperLink1" Runat="server" 
      NavigateUrl="~/Default.aspx">
      Home
    </asp:HyperLink>
    
  </div>
  </form>
</body>
</html>

Комментарии

ChangingPasswordСобытие вызывается до того, как поставщик членства, указанный в MembershipProvider свойстве, вызывается для изменения пароля учетной записи пользователя.The ChangingPassword event is raised before the membership provider specified in the MembershipProvider property is called to change the password for a user account.

Используйте ChangingPassword событие для выполнения любой обработки, необходимой перед изменением пароля, например проверки нового пароля, чтобы убедиться, что он не является списком общих паролей.Use the ChangingPassword event to perform any processing that is necessary before changing the password, such as checking the new password to make sure it is not in a list of common passwords. Новый маркер авторизации для пользователя задается после события, ChangingPassword но перед ChangedPassword событием.The new authorization token for the user is set after the ChangingPassword event but before the ChangedPassword event.

ChangingPasswordСобытие может быть отменено путем присвоения Cancel свойству LoginCancelEventArgs объекта значения true , если обработчик событий определит, что поставщик членства не должен вызываться.The ChangingPassword event can be canceled by setting the Cancel property of the LoginCancelEventArgs object to true if the event handler determines that the membership provider should not be called.

Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий.For more information about handling events, see Handling and Raising Events.

Применяется к

См. также раздел