DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Autenticando Por UserName O Email

01.30.2006
| 2828 views |
  • submit to reddit
        
protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{
    Regex r = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.Compiled);
 
    // sólo si el usuario ingreso un email
    if (r.IsMatch(Login1.UserName))
    {
        string username = Membership.GetUserNameByEmail(Login1.UserName);
 
        // esto significa que el usuario ingresó un email que no existe
        if (String.IsNullOrEmpty(username))
        {
            // mostramos un mensaje de error amigable y cancelamos la autenticación
            Literal error = Login1.FindControl("FailureText") as Literal;
            error.Text = "La dirección de email no se encuentra en nuestros registros.";
            e.Cancel = true;
        }
 
        else
        {
            // Encontramos el nombre de usuario :)
            // Reemplaza el email por el UserName verdadero
            Login1.UserName = username;
        }
    }
}