ChangePassword.UserName Свойство

Определение

Возвращает или задает имя пользователя веб-сайта, для которого необходимо сменить пароль.Gets or sets the Web site user name for which to change the password.

public:
 virtual property System::String ^ UserName { System::String ^ get(); void set(System::String ^ value); };
public virtual string UserName { get; set; }
member this.UserName : string with get, set
Public Overridable Property UserName As String

Значение свойства

Имя пользователя, для которого нужно сменить пароль.The user name for which to change the password.

Примеры

В следующем примере кода демонстрируется страница ASP.NET, использующая веб-элемент управления ChangePassword и включающая обработчик событий SendingMail для события с именем SendingMail.The following code example demonstrates an ASP.NET page that uses a ChangePassword Web control, and includes an event handler for the SendingMail event named SendingMail. В примере кода предполагается, что веб-сайт 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. Дополнительные сведения см. в разделе [Практическое руководство. Реализуйте простую проверку подлинности с помощью форм @ no__t-0.For more information, see How to: Implement Simple Forms Authentication.

Если изменение пароля прошло удачно, код пытается использовать SMTP для отправки пользователю сообщения электронной почты для подтверждения изменения.If the password change succeeds, the code attempts to use SMTP to send an email message to the user to confirm the change. Это делается в обработчике событий @ no__t-0.This is done in theSendingMail event handler. Дополнительные сведения о настройке SMTP-сервера см. в статье @no__t 0How: Установите и настройте виртуальные серверы SMTP в IIS 6.0 @ no__t-0.For information about how to configure an SMTP server, see How to: Install and Configure SMTP Virtual Servers in IIS 6.0. В этом примере нет необходимости настраивать SMTP-сервер. Этот пример создается для проверки сбоя при отправке сообщения электронной почты.For the purposes of this example, it is not necessary to configure an SMTP server; the example is constructed to test for a failure to send an email message.

Если почтовый сервер настроен неправильно или возникла какая-либо другая ошибка и сообщение электронной почты не удается отправить, вызывается функция SendMailError.If a mail server is not configured correctly or some other error occurs and the email message cannot be sent, the SendMailError function is called. Пользователю выводится сообщение.A message is displayed to the user. Кроме того, событие заносится в журнал событий приложений Windows с предположением о том, что источник события с именем Мисамплессите уже существует.In addition, an event is logged to the Windows Application event log with the assumption that an event source named MySamplesSite already exists. Чтобы создать указанный источник события, см. Приведенный ниже пример кода.See the code example below to create the specified event source. Дополнительные сведения о создании источника событий см. в разделе Обработка событий сервера на страницах веб-форм ASP.NET.For more information about creating an event source, see Server Event Handling in ASP.NET Web Forms Pages. Для свойства Handled объекта SendMailErrorEventArgs задается значение true, чтобы указать, что ошибка была обработана.The Handled property of the SendMailErrorEventArgs object is set to true to indicate that the error has been handled.

<%@ 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 MySendingMail(object sender, MailMessageEventArgs e)
  {
    Message1.Text = "Sent mail to you to confirm the password change.";
  }

  void MySendMailError(object sender, SendMailErrorEventArgs e)
  {
    Message1.Text = "Could not send email to confirm password change.";

    // The MySamplesSite event source has already been created by an administrator.
    System.Diagnostics.EventLog myLog = new System.Diagnostics.EventLog();
    myLog.Log = "Application";
    myLog.Source = "MySamplesSite";
    myLog.WriteEntry(
        "Sending mail via SMTP failed with the following error: " + 
        e.Exception.Message.ToString(), 
        System.Diagnostics.EventLogEntryType.Error);

    e.Handled = true;
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>ChangePassword including a SendMailError Event</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"
      OnSendingMail="MySendingMail" 
      OnSendMailError="MySendMailError" 
      ContinueDestinationPageUrl="~/Default.aspx" >
      <MailDefinition 
        BodyFileName="~\MailFiles\ChangePasswordMail.htm" 
        Subject="Activity information for you">
        <EmbeddedObjects>
          <asp:EmbeddedMailObject Name="LoginGif" Path="~\MailFiles\Login.gif" />
          <asp:EmbeddedMailObject Name="PrivacyNoticeTxt" Path="~\MailFiles\PrivacyNotice.txt" />
        </EmbeddedObjects>
      </MailDefinition>
    </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 MySendingMail(ByVal Sender As Object, ByVal e As MailMessageEventArgs)
    Message1.Text = "Sent mail to you to confirm the password change."
  End Sub

  Public Sub MySendMailError(ByVal Sender As Object, ByVal e As SendMailErrorEventArgs)
    Message1.Text = "Could not send mail to confirm the password change."
    
    ' The MySamplesSite event source has already been created by an administrator.
    Dim myLog As System.Diagnostics.EventLog
    myLog = new System.Diagnostics.EventLog
    myLog.Log = "Application"
    myLog.Source = "MySamplesSite"
    myLog.WriteEntry("Sending mail via SMTP failed with the following error: " & e.Exception.Message.ToString(), System.Diagnostics.EventLogEntryType.Error)

    e.Handled = True
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>ChangePassword including a SendMailError Event</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"
      OnSendingMail="MySendingMail" 
      OnSendMailError="MySendMailError" 
      ContinueDestinationPageUrl="~/Default.aspx" >
      <MailDefinition 
        BodyFileName="~\MailFiles\ChangePasswordMail.htm" 
        Subject="Activity information for you">
        <EmbeddedObjects>
          <asp:EmbeddedMailObject Name="LoginGif" Path="~\MailFiles\Login.gif" />
          <asp:EmbeddedMailObject Name="PrivacyNoticeTxt" Path="~\MailFiles\PrivacyNotice.txt" />
        </EmbeddedObjects>
      </MailDefinition>
    </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>

Используйте следующий пример кода, если необходимо программно добавить источник событий с именем Мисамплессите в журнал приложения.Use the following code example if you need to programmatically add the event source named MySamplesSite to your Application log. Чтобы первый пример кода работал правильно, этот источник событий должен существовать.This event source must exist in order for the first code example to work correctly. Для следующего примера кода требуются права администратора.The following code example requires Administrator privileges.

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

#endregion

namespace CreateEventSource
{
    class Program
    {
        static void Main(string[] args)
        {

            try
            {
                // Create the source, if it does not already exist.
                if (!EventLog.SourceExists("MySamplesSite"))
                {
                    EventLog.CreateEventSource("MySamplesSite", "Application");
                    Console.WriteLine("Creating Event Source");
                }

                // Create an EventLog instance and assign its source.
                EventLog myLog = new EventLog();
                myLog.Source = "MySamplesSite";

                // Write an informational entry to the event log.    
                myLog.WriteEntry("Testing writing to event log.");

                Console.WriteLine("Message written to event log.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception:");
                Console.WriteLine("{0}", e.ToString());
            }
        }
    }
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Diagnostics


Namespace CreateEventSource
  Class Program
    Sub Main()

        Try
            ' Create the source, if it does not already exist.
            If Not (EventLog.SourceExists("MySamplesSite")) Then
                EventLog.CreateEventSource("MySamplesSite", "Application")
                Console.WriteLine("Creating Event Source")
            End If

            ' Create an EventLog instance and assign its source.
            Dim myLog As New EventLog
            myLog.Source = "MySamplesSite"

            ' Write an informational entry to the event log.
            myLog.WriteEntry("Testing writing to event log.")

            Console.WriteLine("Message written to event log.")
        Catch e As Exception
            Console.WriteLine("Exception:")
            Console.WriteLine(e.ToString)
        End Try

    End Sub
  End Class
End Namespace

Следующий пример кода можно использовать в качестве файла Чанжепассвордмаил. htm для предыдущего примера кода.The following example code can be used as the ChangePasswordMail.htm file for the previous example code.

Важно!

Отправка имен учетных записей пользователей или паролей в сообщении электронной почты является потенциальной угрозой безопасности.Sending user account names or passwords in email is a potential security threat. Сообщения электронной почты обычно отправляются в виде обычного текста и могут быть прочитаны специальными сетевыми приложениями «перехвата».Email messages are typically sent in plain text and can be read by special network "sniffing" applications. Для повышения безопасности используйте способы защиты, описанные в статье Защита элементов управления входом.To improve security, use the mitigations that are described in Securing Login Controls.

<html>  
<head><title></title></head>  
<body>  
<form>  
  
  <h1>Your password for the account named &quot;<%Username%>&quot; has changed.</h1>  
  
  <p>  
  If you did not initiate this change, please call 1-206-555-0100.  
  </p>  
  
  <p>  
  <a href="http://www.contoso.com/login.aspx">  
    <img src="cid:LoginGif" alt="Log In" />  
  </a>   
  </p>  
  
  <p>  
  Please read our attached Privacy Notice.  
  </p>  
  
</form>  
</body>  
</html>  

Комментарии

Свойство UserName получает имя пользователя веб-сайта, для которого изменяется пароль.The UserName property gets the Web site user name for which to change the password. Можно также использовать свойство UserName только для получения имени пользователя из элемента управления ChangePassword без изменения пароля.You can also use the UserName property just to get the user name from within the ChangePassword control, without changing the password. Кроме того, свойство UserName можно использовать в сообщении электронной почты, созданном для отправки электронной почты из элемента управления ChangePassword, с помощью строки "<% UserName% >" в тексте сообщения электронной почты.Additionally, the UserName property can be used from within an email message that has been created to send email from the ChangePassword control by using the string "<%UserName%>" in the body of the email message.

Чтобы разрешить пользователю вводить имя пользователя, задайте для свойства DisplayUserName значение true.To allow the user to type in a user name, set the DisplayUserName property to true. Если пользователь уже прошел проверку подлинности, ему не нужно вводить имя пользователя.If a user is already authenticated, he or she does not need to enter a user name.

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

Дополнительно