¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

MembershipUser.GetPassword (Método)

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

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

public virtual string GetPassword()

Valor devuelto

Tipo: System.String
Contraseña correspondiente al usuario de pertenencia.

ExcepciónCondición
PlatformNotSupportedException

Este método no está disponible. Esto puede ocurrir si la aplicación está destinada a .NET Framework 4 Client Profile. Para evitar esta excepción, invalide el método o cambie la aplicación para destinarla a la versión completa de .NET Framework.

El método GetPassword llama al método MembershipProvider.GetPassword del proveedor de pertenencia hecho referencia por la propiedad ProviderName para recuperar la contraseña del usuario de pertenencia desde el almacén de datos de la pertenencia.

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

NotaNota

Se producirá un objeto ConfigurationException si enablePasswordRetrieval se establece 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 la sobrecarga de GetPassword, que toma una respuesta de contraseña como parámetro y proporciona la respuesta de contraseña del usuario de pertenencia. Si se requiere una respuesta de contraseña y la proporcionada no es correcta, el proveedor de pertenencia produce una excepción MembershipPasswordException.

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

NotaNota

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

Nota de seguridadNota sobre la seguridad

En este ejemplo hay un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las ASP.NET Web Pages validan los datos escritos por el usuario para comprobar que no incluyen script ni elementos HTML. Para obtener más información, vea 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft