- Se solicita al usuario su login (nombre de usuario)
- Se le formula una pregunta de seguridad
- Si la respuesta es correcta se le envía a su cuenta de correo su contraseña o una nueva con la acceder a su cuenta
En .net existe una clase que automatiza este proceso, PasswordRecovery. No obstante existe un problema asociado, y es que no vamos a poder hacer llegar el correo al usuario si nuestro servidor requiere de algún tipo de cifrado (protocolo SSL), ya que el control PasswordRecovery por defecto no utiliza el cifrado al enviar. Para solucionarlo debemos indicárselo.
Vayamos por partes:
- Lo primero que hay que hacer es configurar correctamente el cliente smtp. Si utilizas Visual Studio, ésto es muy sencillo: hay que seleccionar Definir configuración de correo electrónico en la pestaña Aplicación del menú Sitio Web -> Configuración de ASP.Net y ahí indicar los parámetros de nuestro correo smtp.
- Rellenar la propiedad From de PasswordRecovery con nuestra dirección de correo.
- Ahora debemos reescribir el método SendingMail de nuestro control para poder permitir el envío cifrado:
Protected Sub PasswordRecovery1_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles PasswordRecovery1.SendingMail
(1)Dim smtp As SmtpClient = New SmtpClient()
(2)smtp.EnableSsl = True
(3)smtp.Send(e.Message)
(4)e.Cancel = True
End Sub
El código esta en Visual Basic. En la primera línea creamos una nueva instancia del cliente smtp, en la línea dos activamos el envío con ssl y las líneas tres y cuatro simplemente se encargan de que el envío se realice como queremos y de evitar que se envíe dos veces el mismo correo.
Espero que os sea útil.
No hay comentarios:
Publicar un comentario