Foros del Web » Programación para mayores de 30 ;) » .NET »

Validacion de email al registrarse

Estas en el tema de Validacion de email al registrarse en el foro de .NET en Foros del Web. Mi pregunta es la siguiente.. Me pidieron que al registrarse a un sitio se valide la cuenta de correo del cliente. He visto que en ...
  #1 (permalink)  
Antiguo 06/02/2006, 07:52
Avatar de martinArgentino  
Fecha de Ingreso: diciembre-2002
Mensajes: 157
Antigüedad: 21 años, 11 meses
Puntos: 1
Validacion de email al registrarse

Mi pregunta es la siguiente..
Me pidieron que al registrarse a un sitio se valide la cuenta de correo del cliente. He visto que en diferentes lugares se hace esto mandando un linck con un campo que contiene letras y numeros. Al hacer click en el se habilita tu cuenta en el sitio.

He pensado hacer lo mismo pero mi pregunta es si ese campo de letras y numeros es enviado por algua razon de seguridad. Pues yo habia pensado en enviar el Id del registro dado de alta mas el email, cuando se hace click en el link se busca el registro y se valida que el email en este almacenado en elconincida con el email que se encuentra en la Url. Me puede traer algún tipo de problemas esto?


Desde ya muchas gracias...
__________________
Martin
  #2 (permalink)  
Antiguo 06/02/2006, 08:22
Avatar de XCX
XCX
 
Fecha de Ingreso: febrero-2002
Ubicación: Villa Alemana
Mensajes: 138
Antigüedad: 22 años, 9 meses
Puntos: 0
Uhm, yo he visto en varios lugares que envian el id, pero el usuario normalmente no sabe que es el id o no esta interiorisado en ello, simplemente da clic y listo. si tienes configurado los firewall y bien configurada la bd, no creo que tengas problemas. Respecto a esos campos o razon de seguridad, es para validar que realmente esa cuenta de correo existe y que por ende al confirmarse la cuenta del usuario quede habilitada. Pues al no existir el usuario no tiene como validar su cuenta, por ende queria decir que era algun usuario maldadoso o simplemente estaba por estar.
__________________
Chiabela®
Atte: XCX® on the fly
  #3 (permalink)  
Antiguo 06/02/2006, 08:47
Avatar de martinArgentino  
Fecha de Ingreso: diciembre-2002
Mensajes: 157
Antigüedad: 21 años, 11 meses
Puntos: 1
Muchas gracias. Como muchos lo hacen quería sacarme la duda de si tenia algo que ver son la seguridad...

Saludos
__________________
Martin
  #4 (permalink)  
Antiguo 06/02/2006, 09:59
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 3 meses
Puntos: 2
Si despues de "activar la cuenta" haces el login automático del usuario a su "perfil", no envies el ID de usuario, ya que este es un número secuencial que puede ser facilmente descubierto por un malintencionado que activa la cuenta de X persona unicamente sabiendo su ID (suponiendo que X persona todavía no la activó) con los problemas que eso conlleva.
Si tu script tiene la particularidad que necesitas loguear al usuario inmediatamente después de la activación, puedes generar 5 letras aleatorias, pasarlas por un MD5, guardar una copia en la DB y enviarle al mail un link con esa cadena. Esto evitaría la secuencialidad que tiene el ID de usuario. Si le quieres agregar mas seguridad, puedes enviar el ID y el MD5 en dos variables por la URL.
En el caso que no te importe que alguien pueda activar la cuenta de otro usuario, no te compliques con mas que lo que te han dicho.
Saludos.
__________________
R4DS en español | R4DS en inglés
  #5 (permalink)  
Antiguo 06/02/2006, 15:21
 
Fecha de Ingreso: abril-2005
Mensajes: 1
Antigüedad: 19 años, 7 meses
Puntos: 0
como puedo enviar mail desde asp.net?
  #6 (permalink)  
Antiguo 07/02/2006, 05:48
Avatar de martinArgentino  
Fecha de Ingreso: diciembre-2002
Mensajes: 157
Antigüedad: 21 años, 11 meses
Puntos: 1
Aqui tenes una funcion.
// Esto en el header del *.cs
using System.Web.Mail;


private string SendMailMessage(string sEmailTo,string sEmailFrom, string sEmailFromName,string sEmailBcc,string sEmailSubject,string sEmailBody, string sEmailAttach)
{
string sEmailError="ok";
try
{
MailMessage objEmail= new MailMessage();
objEmail.To = sEmailTo;
objEmail.Bcc = sEmailBcc + "; " + ConfigurationSettings.AppSettings.Get("BCC_ToJBKT" );
sEmailFromName ="\""+sEmailFromName+"\" ";
objEmail.From =(sEmailFromName=="")?sEmailFrom:sEmailFromName+"< "+sEmailFrom+">";
objEmail.Subject = sEmailSubject;
objEmail.Body = sEmailBody;
objEmail.BodyFormat = MailFormat.Html;
objEmail.Priority = MailPriority.Normal;
string []vFiles=sEmailAttach.Split(',');
foreach(string attach in vFiles)
{
if (attach!="")
{
MailAttachment objAttach=new MailAttachment(attach);
objEmail.Attachments.Add(objAttach);
}
}
SmtpMail.SmtpServer = CSetting.sSMTP;
SmtpMail.Send(objEmail);
}
catch (Exception exc) { sEmailError=exc.ToString(); }
return sEmailError;
}


private void Button1_Click(object sender, System.EventArgs e)
{
SendMailMessage(.....
}


Saludos
__________________
Martin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:59.