ChangePassword.OnSendingMail(MailMessageEventArgs) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
SendingMail Вызывает событие перед отправкой сообщения электронной почты на SMTP-сервер для обработки. Затем SMTP-сервер отправляет пользователю сообщение электронной почты.
protected:
virtual void OnSendingMail(System::Web::UI::WebControls::MailMessageEventArgs ^ e);
protected virtual void OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs e);
abstract member OnSendingMail : System.Web.UI.WebControls.MailMessageEventArgs -> unit
override this.OnSendingMail : System.Web.UI.WebControls.MailMessageEventArgs -> unit
Protected Overridable Sub OnSendingMail (e As MailMessageEventArgs)
Параметры
MailMessageEventArgs Объект, содержащий данные события.
Примеры
В следующем примере кода показана страница ASP.NET, использующая ChangePassword веб-элемент управления, и включает обработчик событий для SendingMail события с именем SendingMail. В примере кода предполагается, что веб-сайт ASP.NET настроен для использования ASP.NET членства и проверки подлинности форм, и что пользователь был создан, имя и пароль которого известны вам. Дополнительные сведения см. в разделе "Практическое руководство. Реализация простой проверки подлинности форм".
Если изменение пароля выполнено успешно, код пытается использовать SMTP для отправки пользователю сообщения электронной почты, чтобы подтвердить это изменение. Это делается в обработчикеSendingMail событий. Сведения о настройке SMTP-сервера см. в статье "Практическое руководство. Установка и настройка виртуальных серверов SMTP в IIS 6.0". В этом примере не требуется настраивать SMTP-сервер; Пример создается для проверки сбоя отправки сообщения электронной почты.
Если почтовый сервер настроен неправильно или возникает другая ошибка, и сообщение электронной почты не может быть отправлено, SendMailError вызывается функция. Для пользователя отображается сообщение. Кроме того, событие регистрируется в журнале событий приложения Windows с предположением, что источник событий с именем MySamplesSite уже существует. Дополнительные сведения о создании источника событий см. в разделе "Обработка событий сервера" на страницах веб-форм ASP.NET. Свойство HandledSendMailErrorEventArgs объекта имеет значение, указывающее true , что ошибка была обработана.
Используйте следующий пример кода, если необходимо программно добавить источник событий MySamplesSite в журнал приложений. Этот источник событий должен существовать, чтобы первый пример кода работал правильно. В следующем примере кода требуются права администратора.
#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
Следующий пример кода можно использовать в качестве файла ChangePasswordMail.htm для предыдущего примера кода.
Это важно
Отправка имен учетных записей пользователей или паролей в электронной почте является потенциальной угрозой безопасности. Сообщения электронной почты обычно отправляются в виде обычного текста и могут читаться специальными приложениями сети "sniffing". Чтобы повысить безопасность, используйте способы устранения рисков, описанные в разделе "Защита элементов управления именами входа".
<html>
<head><title></title></head>
<body>
<form>
<h1>Your password for the account named "<%Username%>" 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>
Комментарии
OnSendingMail Используйте метод для изменения сообщения электронной почты, отправленного пользователям после изменения пароля. Свойство MessageMailMessageEventArgs объекта будет отправлено на SMTP-сервер для обработки. Измените свойства MailMessage объекта, чтобы изменить сообщение электронной почты.
Сообщения электронной почты создаются только в том случае, если BodyFileName свойство объекта, указанного MailDefinitionMailDefinition свойством, указывает на допустимое имя файла.
Это важно
Отправка имен учетных записей пользователей или паролей в электронной почте является потенциальной угрозой безопасности. Сообщения электронной почты обычно отправляются в виде обычного текста и могут читаться специальными приложениями сети "sniffing". Чтобы повысить безопасность, используйте способы устранения рисков, описанные в разделе "Защита элементов управления именами входа".
При вызове события обработчик событий вызывается через делегат. Дополнительные сведения см. в разделе "Обработка событий сервера" на страницах веб-форм ASP.NET.
Метод OnSendingMail также позволяет производным классам обрабатывать событие без присоединения делегата. Это предпочтительный способ обработки события в производном классе.
Примечания для тех, кто наследует этот метод
При переопределении OnSendingMail(MailMessageEventArgs) метода в производном классе обязательно вызовите OnSendingMail(MailMessageEventArgs) метод для базового класса, чтобы зарегистрированные делегаты получали событие.
Применяется к
См. также раздел
- OnBubbleEvent(Object, EventArgs)
- SendingMail
- Обработка событий сервера на веб-страницах ASP.NET
- Обзор элементов управления входа ASP.NET
- Настройка внешнего вида и поведения элементов управления входа ASP.NET
- Шаблоны элементов управления веб-серверами ASP.NET
- Практическое руководство. Отображение различных сведений для анонимных и вошедшего в систему пользователей
- Вкладка "Безопасность средства администрирования веб-сайта"
- Защита элементов управления для входа
- Основные методики безопасности для веб-приложений
- Защита членства