Esempio n. 1
0
        public ActionResult Ingreso(string msg, string nombreUsuario)
        {
            ViewBag.Usuario = String.Empty;
            if (!String.IsNullOrEmpty(nombreUsuario))
            {
                ViewBag.Usuario = HttpUtility.UrlDecode(nombreUsuario);
            }

            ViewBag.Mensaje = msg;

            var model = new IngresoViewModel();

            return(View(model));
        }
Esempio n. 2
0
        public async Task <ActionResult> Ingreso(IngresoViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //1. Autentificacion
                    model.Usuario = model.Usuario.Trim();

                    var loginResult = await LoginManager.LoginAsync(model.Usuario, model.Password);

                    if (loginResult.Result == LoginResultType.InvalidUserNameOrEmailAddress ||
                        loginResult.Result == LoginResultType.InvalidPassword)
                    {
                        Log.InfoFormat("No existe el usuario [{0}]", model.Usuario);

                        ModelState.AddModelError("", string.Format("Usuario ó Clave incorrecta"));

                        //Setear nuevamente el campo usuario
                        ViewBag.Usuario = model.Usuario;
                        return(IntentarIngreso(model));
                    }

                    if (loginResult.Result == LoginResultType.LockedOut)
                    {
                        Log.InfoFormat(string.Format("El usuario [{0}], se encuentra bloqueado/inactivo", model.Usuario));
                        ModelState.AddModelError("", string.Format("El usuario [{0}], se encuentra bloqueado/inactivo", model.Usuario));
                        return(IntentarIngreso(model));
                    }

                    if (loginResult.Result == LoginResultType.SucessPasswordResetCode)
                    {
                        //Guardar en sesion, la cuenta que ya sido autentificada
                        ManejadorSessionAcceso.setSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion,
                                                          loginResult.User.Id);


                        return(RedirectToAction("CambiarClave"));
                    }

                    if (loginResult.Result == LoginResultType.SucessAuthentication)
                    {
                        var usuario = loginResult.User;

                        //Si unicamente existe un modulo
                        if (usuario.Modulos.Count == 1)
                        {
                            var moduloDefault = usuario.Modulos.FirstOrDefault();

                            var mensaje =
                                string.Format("El usuario {0} ingresa por defecto con el codigo de modulo {1} , fecha y hora: {2}", usuario, moduloDefault.Codigo
                                              , Application.getDateTime());

                            return(await AutentificarUsuario(usuario, moduloDefault));
                        }
                        else if (usuario.Modulos.Count > 1)
                        {
                            Log.InfoFormat(string.Format("El usuario [{0}], posee varios modulos ", model.Usuario));

                            //Guardar en sesion, la cuenta que ya sido autentificada
                            ManejadorSessionAcceso.setSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion,
                                                              usuario.Id);

                            return(RedirectToAction("SeleccionarModulo"));
                        }
                        else if (usuario.Modulos.Count == 0)
                        {
                            Log.ErrorFormat("Sistema. El usuario no posee modulos asociadas");
                            ModelState.AddModelError(string.Empty, "El usuario no posee modulos asociadas");
                        }
                    }

                    Log.InfoFormat("Sistema. El usuario {0} no existe", model.Usuario);
                    ModelState.AddModelError(string.Empty, string.Format("El usuario no existe. {0}", loginResult.Result.ToString()));
                }
            }

            catch (Exception ex)
            {
                var result = ManejadorExcepciones.HandleException(ex);
                Log.ErrorFormat(result.Message);
                ModelState.AddModelError("", result.Message);
            }

            return(View(model));
        }
Esempio n. 3
0
 private ActionResult IntentarIngreso(IngresoViewModel model)
 {
     return(View("Ingreso", model));
 }