Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo MembershipUser.GetPassword ()

 

Data di pubblicazione: ottobre 2016

Ottiene la password per l'utente di appartenenza dall'archivio dati di appartenenza.

Spazio dei nomi:   System.Web.Security
Assembly:  System.Web.ApplicationServices (in System.Web.ApplicationServices.dll)

public virtual string GetPassword()

Valore restituito

Type: System.String

Password per l'utente di appartenenza.

Exception Condition
PlatformNotSupportedException

Questo metodo non è disponibile. Questa situazione può verificarsi se l'applicazione è destinata a .NET Framework 4 Client Profile. Per evitare questa eccezione, eseguire l'override del metodo o modificare l'applicazione in modo che usi la versione completa di .NET Framework come destinazione.

GetPassword chiamate di MembershipProvider.GetPassword metodo del provider di appartenenze a cui fa riferimento la ProviderName proprietà per recuperare la password dell'utente di appartenenza dall'archivio dati di appartenenza.

Se EnablePasswordRetrieval è false, il provider di appartenenze restituirà un'eccezione. Se il provider supporta le password con un PasswordFormat di Hashed, si sarà in grado di recuperare la password dell'utente di appartenenza e si consiglia di rendere utilizzano il ResetPassword metodo quando un utente ha dimenticato la propria password.

System_CAPS_noteNota

Oggetto ConfigurationException verrà generata se enablePasswordRetrieval è impostato su true e passwordFormat è impostato su Hashed nel file Web. config per l'applicazione ASP.NET.

Se RequiresQuestionAndAnswer è true, è necessario utilizzare il GetPassword overload che accetta una password rispondere come parametro e fornisce la risposta per la password dell'utente di appartenenza. Se è necessaria una risposta segreta e viene fornita una risposta di password non corretta, un MembershipPasswordException viene generata dal provider di appartenenze.

Nell'esempio di codice viene chiamato il GetPassword metodo per recuperare la password per un nome utente specificato. La password viene inviata all'indirizzo di posta elettronica dell'utente. Si noti che RequiresQuestionAndAnswer si presuppone che sia false.

System_CAPS_noteNota

Restituzione di una password in testo non crittografato tramite posta elettronica non è consigliabile per i siti che richiedono un elevato livello di sicurezza. Per i siti con sicurezza elevata, è consigliabile restituire le password mediante crittografia, ad esempio SSL.

System_CAPS_security Sicurezza Nota

In questo esempio contiene una casella di testo che accetta l'input dell'utente, ovvero una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere 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
Disponibile da 2.0
Torna all'inizio
Mostra: