ChangePassword.OnSendingMail(MailMessageEventArgs) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Déclenche l’événement SendingMail avant qu’un message électronique soit envoyé au serveur SMTP pour traitement. Le serveur SMTP envoie ensuite le message électronique à l’utilisateur.
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)
Paramètres
Objet MailMessageEventArgs contenant les données d’événement.
Exemples
L’exemple de code suivant illustre une page ASP.NET qui utilise un ChangePassword contrôle Web et inclut un gestionnaire d’événements pour l’événement SendingMail nommé SendingMail. L’exemple de code suppose que le site web ASP.NET a été configuré pour utiliser ASP.NET l’appartenance et l’authentification par formulaire, et qu’un utilisateur a été créé dont le nom et le mot de passe sont connus pour vous. Pour plus d’informations, consultez Guide pratique pour implémenter l’authentification par formulaire simple.
Si la modification du mot de passe réussit, le code tente d’utiliser SMTP pour envoyer un e-mail à l’utilisateur pour confirmer la modification. Cette opération est effectuée dans le gestionnaire d’événementsSendingMail . Pour plus d’informations sur la configuration d’un serveur SMTP, consultez Guide pratique pour installer et configurer des serveurs virtuels SMTP dans IIS 6.0. Pour les besoins de cet exemple, il n’est pas nécessaire de configurer un serveur SMTP ; l’exemple est construit pour tester l’échec de l’envoi d’un message électronique.
Si un serveur de messagerie n’est pas configuré correctement ou si une autre erreur se produit et que le message électronique ne peut pas être envoyé, la SendMailError fonction est appelée. Un message s’affiche à l’utilisateur. En outre, un événement est consigné dans le journal des événements de l’application Windows avec l’hypothèse qu’une source d’événement nommée MySamplesSite existe déjà. Pour plus d’informations sur la création d’une source d’événement, consultez Gestion des événements serveur dans ASP.NET pages Web Forms. La Handled propriété de l’objet SendMailErrorEventArgs est définie pour true indiquer que l’erreur a été gérée.
Utilisez l’exemple de code suivant si vous devez ajouter par programme la source d’événement nommée MySamplesSite à votre journal d’application. Cette source d’événement doit exister pour que le premier exemple de code fonctionne correctement. L’exemple de code suivant nécessite des privilèges d’administrateur.
#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
L’exemple de code suivant peut être utilisé comme fichier ChangePasswordMail.htm pour l’exemple de code précédent.
Important
L’envoi de noms de compte d’utilisateur ou de mots de passe dans l’e-mail est une menace de sécurité potentielle. Les messages électroniques sont généralement envoyés en texte brut et peuvent être lus par des applications « sniffing » de réseau spécial. Pour améliorer la sécurité, utilisez les atténuations décrites dans La sécurisation des contrôles de connexion.
<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>
Remarques
Utilisez la OnSendingMail méthode pour modifier le message électronique envoyé aux utilisateurs après avoir modifié leur mot de passe. La Message propriété de l’objet MailMessageEventArgs est envoyée au serveur SMTP pour traitement. Modifiez les propriétés de l’objet MailMessage pour modifier le message électronique.
Les messages électroniques sont créés uniquement lorsque la BodyFileName propriété de l’objet MailDefinition spécifié par la MailDefinition propriété pointe vers un nom de fichier valide.
Important
L’envoi de noms de compte d’utilisateur ou de mots de passe dans l’e-mail est une menace de sécurité potentielle. Les messages électroniques sont généralement envoyés en texte brut et peuvent être lus par des applications « sniffing » de réseau spécial. Pour améliorer la sécurité, utilisez les atténuations décrites dans La sécurisation des contrôles de connexion.
Le déclenchement d’un événement appelle le gestionnaire d’événements par le biais d’un délégué. Pour plus d’informations, consultez Gestion des événements de serveur dans ASP.NET pages Web Forms.
La OnSendingMail méthode permet également aux classes dérivées de gérer l’événement sans attacher de délégué. Il s’agit de la technique recommandée pour gérer l’événement dans une classe dérivée.
Notes pour les héritiers
En cas de substitution de la OnSendingMail(MailMessageEventArgs) méthode dans une classe dérivée, veillez à appeler la OnSendingMail(MailMessageEventArgs) méthode pour la classe de base afin que les délégués inscrits reçoivent l’événement.
S’applique à
Voir aussi
- OnBubbleEvent(Object, EventArgs)
- SendingMail
- Gestion des événements serveur dans les pages web ASP.NET
- Vue d’ensemble des contrôles de connexion ASP.NET
- Personnalisation de l’apparence et du comportement des contrôles de connexion ASP.NET
- modèles de contrôles de serveur web ASP.NET
- Guide pratique pour afficher différentes informations sur les utilisateurs anonymes et connectés
- Onglet Sécurité de l’outil d’administration de site web
- Sécurisation des contrôles de connexion
- Pratiques de sécurité de base pour les applications web
- Sécurisation de l’appartenance