Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método MembershipUser.GetPassword ()

 

Publicado: octubre de 2016

Obtiene la contraseña del usuario de pertenencia del almacén de datos de pertenencia.

Espacio de nombres:   System.Web.Security
Ensamblado:  System.Web.ApplicationServices (en System.Web.ApplicationServices.dll)

public virtual string GetPassword()

Valor devuelto

Type: System.String

Contraseña del usuario de pertenencia.

Exception Condition
PlatformNotSupportedException

Este método no está disponible. Esto se puede producir si la aplicación está destinada a .NET Framework 4 Client Profile. Para evitar esta excepción, reemplace el método o cambie la aplicación para que el destino sea la versión completa de .NET Framework.

GetPassword llamadas del MembershipProvider.GetPassword método del proveedor de pertenencia al que hace referencia el ProviderName propiedad para recuperar la contraseña de pertenencia desde el almacén de datos de pertenencia.

Si EnablePasswordRetrieval es false, el proveedor de pertenencia devolverá una excepción. Si el proveedor admite contraseñas con un PasswordFormat de Hashed, no podrá recuperar la contraseña del usuario de pertenencia y debería considerar realizar el uso de la ResetPassword método cuando un usuario ha olvidado su contraseña.

System_CAPS_noteNota

Un ConfigurationException se producirá si enablePasswordRetrieval está establecido en true y passwordFormat se establece en Hashed en el archivo Web.config para la aplicación ASP.NET.

Si RequiresQuestionAndAnswer es true, debe utilizar el GetPassword sobrecarga que toma una contraseña responder como parámetro y proporciona la respuesta de contraseña para el usuario de pertenencia. Si se requiere una respuesta de contraseña y se proporciona una respuesta de la contraseña es incorrecta, una MembershipPasswordException producida por el proveedor de pertenencia.

El siguiente ejemplo de código llama el GetPassword método para recuperar la contraseña para un nombre de usuario especificado. La contraseña se envía a la dirección de correo electrónico del usuario. Tenga en cuenta que RequiresQuestionAndAnswer se supone que es false.

System_CAPS_noteNota

No se recomienda devolver una contraseña en texto no cifrado mediante correo electrónico para los sitios que requieren un alto nivel de seguridad. Para sitios de alta seguridad, se recomienda devolver contraseñas utilizando el cifrado, como SSL.

System_CAPS_security Seguridad Nota

Este ejemplo contiene un cuadro de texto que acepta datos proporcionados por el usuario, que puede suponer una amenaza de seguridad. De forma predeterminada, ASP.NET Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script. Para obtener más información, consulta Script Exploits Overview.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Page_Load(object sender, EventArgs args)
{
  if (!Membership.EnablePasswordRetrieval)
  {
    FormsAuthentication.RedirectToLoginPage();
  }

  Msg.Text = "";

  if (!IsPostBack)
  {
    Msg.Text = "Please supply a username.";
  }
  else
  {
    VerifyUsername();
  }
}


public void VerifyUsername()
{
    MembershipUser u = Membership.GetUser(UsernameTextBox.Text, false);

    if (u == null)
    {
      Msg.Text = "Username " + Server.HtmlEncode(UsernameTextBox.Text) + " not found. Please check the value and re-enter.";

      EmailPasswordButton.Enabled = false;
    }
    else
    {
      EmailPasswordButton.Enabled = true;
    }
}


public void EmailPassword_OnClick(object sender, EventArgs args)
{
  MembershipUser u = Membership.GetUser(UsernameTextBox.Text, false);
  string password;

  if (u != null)
  {
    try
    {
      password = u.GetPassword();
    }
    catch (Exception e)
    {
      Msg.Text = "An exception occurred retrieving your password: " + Server.HtmlEncode(e.Message);
      return;
    }

    EmailPassword(u.Email, password);
    Msg.Text = "Password sent via e-mail.";
  }
  else
  {
    Msg.Text = "User name is not valid. Please check the value and try again.";
  }
}


private void EmailPassword(string email, string password)
{
  try
  {
    MailMessage Message = new MailMessage();
    Message.To = email;
    Message.From = "administrator";
    Message.Subject = "Your Password";
    Message.Body = "Your password is: " + Server.HtmlEncode(password);

    SmtpMail.SmtpServer = "smarthost";
    SmtpMail.Send(Message);
  }
  catch 
  {
    Msg.Text = "An exception occurred sending your password. Please try again.";
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Password</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Retrieve Password</h3>

  <asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />

  Username: <asp:Textbox id="UsernameTextBox" Columns="30" runat="server" AutoPostBack="true" />
            <asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
                                        ControlToValidate="UsernameTextBox" ForeColor="red"
                                        Display="Static" ErrorMessage="Required" /><br />

  <asp:Button id="EmailPasswordButton" Text="Email My Password" 
              OnClick="EmailPassword_OnClick" runat="server" Enabled="false" />

</form>

</body>
</html>

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: