Esempio n. 1
0
        public async Task <ActionResult> Login(FormCollection collection, string returnUrl)
        {
            HalconDBEntities db = new HalconDBEntities();

            if (!ModelState.IsValid)
            {
                return(View());
            }

            // No cuenta los errores de inicio de sesión para el bloqueo de la cuenta
            // Para permitir que los errores de contraseña desencadenen el bloqueo de la cuenta, cambie a shouldLockout: true
            //var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
            //switch (result)
            //{
            //    case SignInStatus.Success:
            //        return RedirectToLocal(returnUrl);
            //    case SignInStatus.LockedOut:
            //        return View("Lockout");
            //    case SignInStatus.RequiresVerification:
            //        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            //    case SignInStatus.Failure:
            //    default:
            //        ModelState.AddModelError("", "Intento de inicio de sesión no válido.");
            //        return View(model);
            //}

            Usuarios objUsuario = new Usuarios();

            Manager.Models.Roles objRol = new Manager.Models.Roles();
            UsuarioAutenticado   objUsuarioAutenticado = new UsuarioAutenticado();

            string sNombreUsuario = collection["NombreUsuario"];
            string sPassword      = collection["Password"];

            objUsuario = (from obj in db.Usuarios where obj.NombreUsuario == sNombreUsuario && obj.Password == sPassword /*&& objUsuario.IdEstado == 1*/ select obj).First();
            objRol     = (from obj in db.Roles where obj.IdRol == objUsuario.IdRol select obj).First();

            objUsuarioAutenticado.Apellido      = objUsuario.Apellido;
            objUsuarioAutenticado.IdUsuario     = objUsuario.IdUsuario;
            objUsuarioAutenticado.Nombre        = objUsuario.Nombre;
            objUsuarioAutenticado.NombreUsuario = objUsuario.NombreUsuario;
            objUsuarioAutenticado.Rol           = objRol.Nombre;


            if (objUsuario == null)
            {
                ModelState.AddModelError("", "Intento de inicio de sesión no válido.");
                return(View());
            }
            else
            {
                this.SetAuthCookie(objUsuario.Nombre + " " + objUsuario.Apellido, false, objUsuarioAutenticado);
                return(RedirectToLocal(returnUrl));
            }
        }