ChangePassword.OnSendingMail(MailMessageEventArgs) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Genererar SendingMail händelsen innan ett e-postmeddelande skickas till SMTP-servern för bearbetning. SMTP-servern skickar sedan e-postmeddelandet till användaren.
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)
Parametrar
Ett MailMessageEventArgs objekt som innehåller händelsedata.
Exempel
Följande kodexempel visar en ASP.NET sida som använder en ChangePassword webbkontroll och innehåller en händelsehanterare för händelsen SendingMail med namnet SendingMail. Kodexemplet förutsätter att ASP.NET webbplats har konfigurerats för att använda ASP.NET medlemskap och formulärautentisering och att en användare har skapats vars namn och lösenord är kända för dig. Mer information finns i Så här implementerar du enkel formulärautentisering.
Om lösenordsändringen lyckas försöker koden använda SMTP för att skicka ett e-postmeddelande till användaren för att bekräfta ändringen. Detta görs iSendingMail händelsehanteraren. Information om hur du konfigurerar en SMTP-server finns i Så här installerar och konfigurerar du virtuella SMTP-servrar i IIS 6.0. I det här exemplet är det inte nödvändigt att konfigurera en SMTP-server. exemplet är konstruerat för att testa om det inte går att skicka ett e-postmeddelande.
Om en e-postserver inte är korrekt konfigurerad eller om något annat fel inträffar och e-postmeddelandet inte kan skickas anropas SendMailError funktionen. Ett meddelande visas för användaren. Dessutom loggas en händelse till händelseloggen Windows Application med antagandet att det redan finns en händelsekälla med namnet MySamplesSite. Mer information om hur du skapar en händelsekälla finns i Server Event Handling i ASP.NET Web Forms Pages. Egenskapen Handled för SendMailErrorEventArgs objektet är inställd på för true att indikera att felet har hanterats.
Använd följande kodexempel om du behöver lägga till händelsekällan mySamplesSite programmatiskt i programloggen. Den här händelsekällan måste finnas för att det första kodexemplet ska fungera korrekt. Följande kodexempel kräver administratörsbehörighet.
#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
Följande exempelkod kan användas som den ChangePasswordMail.htm filen för föregående exempelkod.
Important
Att skicka användarnamn eller lösenord i e-post är ett potentiellt säkerhetshot. E-postmeddelanden skickas vanligtvis i oformaterad text och kan läsas av särskilda nätverksprogram för "sniffning". Du kan förbättra säkerheten genom att använda de åtgärder som beskrivs i Skydda inloggningskontroller.
<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>
Kommentarer
Använd metoden OnSendingMail för att ändra e-postmeddelandet som skickas till användare när de har ändrat sitt lösenord. Objektets MessageMailMessageEventArgs egenskap skickas till SMTP-servern för bearbetning. Ändra egenskaperna för MailMessage objektet för att ändra e-postmeddelandet.
E-postmeddelanden skapas endast när BodyFileName egenskapen för MailDefinition objektet som anges av MailDefinition egenskapen pekar på ett giltigt filnamn.
Important
Att skicka användarnamn eller lösenord i e-post är ett potentiellt säkerhetshot. E-postmeddelanden skickas vanligtvis i oformaterad text och kan läsas av särskilda nätverksprogram för "sniffning". Du kan förbättra säkerheten genom att använda de åtgärder som beskrivs i Skydda inloggningskontroller.
När du skapar en händelse anropas händelsehanteraren via ett ombud. Mer information finns i Server Event Handling i ASP.NET Web Forms Pages.
Metoden OnSendingMail gör det också möjligt för härledda klasser att hantera händelsen utan att koppla ett ombud. Det här är den bästa tekniken för att hantera händelsen i en härledd klass.
Anteckningar till arvingar
När du OnSendingMail(MailMessageEventArgs) åsidosätter metoden i en härledd klass måste du anropa OnSendingMail(MailMessageEventArgs) metoden för basklassen så att registrerade ombud får händelsen.
Gäller för
Se även
- OnBubbleEvent(Object, EventArgs)
- SendingMail
- Server händelsehantering i ASP.NET webbsidor
- Översikt över ASP.NET inloggningskontroller
- Anpassa utseende och beteende för ASP.NET inloggningskontroller
- ASP.NET Web Server Controls-mallar
- Anvisningar: Visa annan information för anonyma och inloggade användare
- Fliken Säkerhet för webbplatsadministrationsverktyg
- Skydda inloggningskontroller
- Grundläggande säkerhetsmetoder för webbprogram
- Skydda medlemskap