示例#1
0
        public IActionResult Login(IFormCollection collection, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;

            Usuario usuario = new Usuario
            {
                contrasena    = collection["contrasena"],
                nombreUsuario = collection["nombreUsuario"],
            };

            bool formatoContrasenaValida = usuario.comprobarContrasenaSegura();

            if (!formatoContrasenaValida)
            {
                ViewBag.Messages = new[] {
                    new AlertViewModel("danger", "Error", "Formato de Contraseña Inválida")
                };
                return(View(usuario));
            }

            string  contrasenaEncriptada = _encriptar.encriptarContrasena(usuario.contrasena);
            Usuario usuarioAlmacenado    = _usuarioGateway.obtener(contrasenaEncriptada, usuario.nombreUsuario.ToLower());

            if (usuarioAlmacenado != null)
            {
                _logger.LogInformation(1, "Usuario válido");
                HttpContext.Session?.Set(SessionKeyName, usuario.nombreUsuario.ToLower());
                return(RedirectToLocal(returnUrl));
            }

            ViewBag.Messages = new[] {
                new AlertViewModel("danger", "Error", "Usuario o contraseña inválidos")
            };
            return(View(usuario));
        }