Пример #1
0
        protected void LogIn(object sender, EventArgs e)
        {
            if (IsValid)
            {
                // Validar la contraseña del usuario
                var manager = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();

                var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>();

                // Esto no cuenta los errores de inicio de sesión hacia el bloqueo de cuenta
                // Para habilitar los errores de contraseña para desencadenar el bloqueo, cambie a shouldLockout: true
                // Require the user to have a confirmed email before they can log on.

                var user = manager.FindByName(UserName.Text);
                //var user = manager.FindByName(UserName.Text);
                if (user != null)
                {
                    if (!user.EmailConfirmed)
                    {
                        FailureText.Text      = "Intentos de inicio de sesión no válidos. Debe tener una cuenta de correo electrónico confirmada.";
                        ErrorMessage.Visible  = true;
                        ResendConfirm.Visible = true;
                    }
                    else
                    {
                        if (usuarioCtrl.AsignPersona(UserName.Text))
                        {
                            var result = signinManager.PasswordSignIn(UserName.Text, Password.Text, RememberMe.Checked, shouldLockout: false);
                            //var passwordHash = manager.PasswordHasher.HashPassword(Password.Text);
                            //var pas = Utilsss.HashPassword(Password.Text);
                            ///"AAKshMpqyvk8UVfleZtH9hNzxau5nZGb01P3qVuaMcsP3v//CjSpPzKhPb51V8G2eQ==")

                            switch (result)
                            {
                            case SignInStatus.Success:
                                Response.Redirect("~/Vistas/Empresas/Index");
                                break;

                            case SignInStatus.LockedOut:
                                Response.Redirect("/Account/Lockout");
                                break;

                            case SignInStatus.RequiresVerification:
                                Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
                                                                Request.QueryString["ReturnUrl"],
                                                                RememberMe.Checked),
                                                  true);
                                break;

                            case SignInStatus.Failure:
                            default:
                                FailureText.Text     = "Intento de inicio de sesión no válido";
                                ErrorMessage.Visible = true;
                                break;
                            }
                        }
                        else
                        {
                            FailureText.Text     = "Usuario sin Persona Asignada. Contáctese con el Administrador del Sistema";
                            ErrorMessage.Visible = true;
                        }
                    }
                }
            }
        }