public ActionResult Login(BELogin model) { JavaScriptSerializer serializer = new JavaScriptSerializer(); BLUsuario oblUsuario = new BLUsuario(); try { if (ModelState.IsValid) { var _usr = model.user.Trim().ToUpper(); var _pwd = Peach.EncriptText(Crypto.CryptoProvider.TripleDES, model.pass.Trim()); var responser = oblUsuario.getUsuario_byLogin(_usr, _pwd); if (responser.Estado == ResponserEstado.Ok) { BEUsuario UserData = (BEUsuario)responser.DataContent; if (UserData.IsDominio == 1) { var DominioResult = BLUsuario.ValidaDominio(new BELogin { user = _usr, pass = model.pass.Trim() }); if (!DominioResult) { AddToastMessage(string.Empty, "Su contraseña no es correcta. Utilice su contraseña de dominio.", BootstrapAlertType.danger); return(View()); } } // :Ticket de cookie CustomPrincipalTicket _dataTicket = new CustomPrincipalTicket { CID = UserData.CID, Usuario = UserData.Apellidos, Unidad_Nombre = UserData.Unidad.Nombre, OrganoServicio_CID = UserData.OrganoServicio.CID, OrganoServicio_Nombre = UserData.OrganoServicio.Nombre, OrganoServicio_Abr = UserData.OrganoServicio.Abreviatura, Rol_Accion = (UsuarioRolType)UserData.Rol.IntValue }; // :Perfiles int num_perfiles = (UserData.Perfiles != null) ? UserData.Perfiles.ToList().Count() : 1; if (num_perfiles == 1) { // :Tiene un perfil => adiciona al ticket _dataTicket.Perfil_CID = UserData.Perfil.CID; _dataTicket.Perfil_Nombre = UserData.Perfil.Nombre; } // :Serializa, encripta, genera la cookie y establece la sesión string userData = serializer.Serialize(_dataTicket); SessionHelper.AddUserToSession(Peach.EncriptText(userData)); if (num_perfiles == 1) { // :Home return(RedirectToAction("Index", "Home")); } else { // Redirecciona a la página para la selección de perfil TempData["jJ0PG6Fk"] = UserData.Perfiles; return(RedirectToAction("Perfil", "Account")); } } else { AddToastMessage(string.Empty, responser.Mensaje, responser.TipoAlerta); return(View()); } } else { AddToastMessage("Acceso no permitido", "Sus credenciales de acceso no son válidas", BootstrapAlertType.danger); return(View()); } } catch (Exception ex) { AddToastMessage("Error", ex.Message, BootstrapAlertType.danger); } return(View()); }