ChangePassword.ChangingPassword Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre antes que a senha de uma conta de usuário seja alterada pelo provedor de associação.
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
Tipo de evento
Exemplos
O exemplo de código a seguir mostra como usar uma página ASP.NET que usa um ChangePassword controle e inclui um manipulador para o ChangingPassword evento chamado ChangingPassword
. O código no manipulador de eventos compara a senha antiga armazenada na CurrentPassword propriedade com a nova senha armazenada em NewPassword. Se as duas senhas forem as mesmas, a alteração da senha falhará.
O ChangePassword controle define a DisplayUserName propriedade como para true
permitir que os usuários insiram seu nome de usuário. Isso significa que o usuário não precisa fazer logon para exibir a página.
O exemplo de código pressupõe que o site do ASP.NET foi configurado para usar ASP.NET associação e autenticação de Formulários e que um usuário foi criado cujo nome e senha são conhecidos por você. Para obter mais informações, consulte Como implementar a autenticação de formulários simples.
<%@ 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>
Comentários
O ChangingPassword evento é gerado antes que o provedor de associação especificado na MembershipProvider propriedade seja chamado para alterar a senha de uma conta de usuário.
Use o ChangingPassword evento para executar qualquer processamento necessário antes de alterar a senha, como verificar a nova senha para garantir que ela não esteja em uma lista de senhas comuns. O novo token de autorização para o usuário é definido após o ChangingPassword evento, mas antes do ChangedPassword evento.
O ChangingPassword evento pode ser cancelado definindo a Cancel propriedade do LoginCancelEventArgs objeto como true
se o manipulador de eventos determinar que o provedor de associação não deve ser chamado.
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.
Aplica-se a
Confira também
- OnChangingPassword(LoginCancelEventArgs)
- Manipulação de eventos do servidor em páginas da Web ASP.NET
- Visão geral dos controles de logon do ASP.NET
- Personalizando a aparência e o comportamento dos controles de logon do ASP.NET
- ASP.NET modelos de controles de servidor Web
- Como exibir informações diferentes para usuários anônimos e conectados
- Guia Segurança da Ferramenta de Administração de Site
- Protegendo controles de logon
- Práticas básicas de segurança para aplicativos da Web
- Protegendo associação