none
¿Login con email y username en membership? RRS feed

  • Pregunta

  • Hola!

    ¿Como iniciar sesion con el email o username y password en membership de mvc 4?

    Se que para iniciar secion con el usuario y contraseña es este codigo

    [AllowAnonymous]
            [HttpPost]
            public ActionResult Login(IdentificarmeModel model, string returnUrl)
            {
                if (ModelState.IsValid)
                {
                    if (Membership.ValidateUser(model.UserName, model.Password))
                    {
                        FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                        if (Url.IsLocalUrl(returnUrl))
                        {
                            return Redirect(returnUrl);
                        }
                        else
                        {
                            return RedirectToAction("Index", "Home");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "El nombre de usuario o contraseña proporcionada es incorrecta.");
                    }
                }
    
    
                // If we got this far, something failed, redisplay form
                return View(model);
            }

    tambien se que para iniciar secion con el email y contraseña es este

    [AllowAnonymous]
            [HttpPost]
            public ActionResult Login(IdentificarmeModel model, string returnUrl)
            {
                if (ModelState.IsValid)
                {
                    var userName = Membership.GetUserNameByEmail(model.Email);
                    if (Membership.ValidateUser(userName, model.Password))
                    {
                        FormsAuthentication.SetAuthCookie(userName, model.RememberMe);
                        if (Url.IsLocalUrl(returnUrl))
                        {
                            return Redirect(returnUrl);
                        }
                        else
                        {
                            return RedirectToAction("Index", "Home");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "El nombre de usuario o contraseña proporcionada es incorrecta.");
                    }
                }
    
                // If we got this far, something failed, redisplay form
                return View(model);
            }

    Pero al querer iniciar secion con el nombre de usuario o email mas contraseña no se me ocuurre alguna forma

    ¿alguien me podria ayudar? de  antemano quedo agradecido

    Saludos


    kontracx

    jueves, 23 de agosto de 2012 18:50

Respuestas

  • Hola yo proceso un poco la cadena de entrada del campo username, verifico si contiene la @...  aqui te dejo el codigo  

    if (ModelState.IsValid)
                {
                    MembershipUser usuario = null;
                    string nombreUsuario;
                    bool usaEmail = model.UserName.Contains('@') ? true : false;
                    if (usaEmail)
                    {
                        nombreUsuario = Membership.GetUserNameByEmail(model.UserName);
                        if (!string.IsNullOrEmpty(nombreUsuario))
                            usuario = Membership.GetUser(nombreUsuario);
                    }
                    else
                    {
                        nombreUsuario = model.UserName;
                        usuario = Membership.GetUser(model.UserName);
                    }
                    if (usuario != null && MembershipService.ValidateUser(nombreUsuario, model.Password))
                    {
                        FormsService.SignIn(nombreUsuario, model.RememberMe);

    ojala te sirva 

    Saludos

    • Marcado como respuesta kontracx jueves, 23 de agosto de 2012 19:33
    jueves, 23 de agosto de 2012 19:23

Todas las respuestas

  • Hola yo proceso un poco la cadena de entrada del campo username, verifico si contiene la @...  aqui te dejo el codigo  

    if (ModelState.IsValid)
                {
                    MembershipUser usuario = null;
                    string nombreUsuario;
                    bool usaEmail = model.UserName.Contains('@') ? true : false;
                    if (usaEmail)
                    {
                        nombreUsuario = Membership.GetUserNameByEmail(model.UserName);
                        if (!string.IsNullOrEmpty(nombreUsuario))
                            usuario = Membership.GetUser(nombreUsuario);
                    }
                    else
                    {
                        nombreUsuario = model.UserName;
                        usuario = Membership.GetUser(model.UserName);
                    }
                    if (usuario != null && MembershipService.ValidateUser(nombreUsuario, model.Password))
                    {
                        FormsService.SignIn(nombreUsuario, model.RememberMe);

    ojala te sirva 

    Saludos

    • Marcado como respuesta kontracx jueves, 23 de agosto de 2012 19:33
    jueves, 23 de agosto de 2012 19:23
  • Hola Richof Gracias por responder.. me ha servido.

    Saludos


    kontracx

    jueves, 23 de agosto de 2012 19:33