public virtual ActionResult Login(string usuario, string password) { SeguridadBL seguridadBL = new SeguridadBL(); var hashPermisosBotones = new List <string>(); try { //ContentResult loginResponse = (ContentResult)(new SeguridadController()).Login(usuario, password); //GR.Scriptor.Membership.Entidades.ResponseLoginUsuario responseLoginUsuario = Newtonsoft.Json.JsonConvert.DeserializeObject<GR.Scriptor.Membership.Entidades.ResponseLoginUsuario>(loginResponse.Content); //OBTENEMOS EL LOGIN ResponseLoginUsuario objLogin = seguridadBL.Login(new RequestLogin { Clave = password, CodigoUsuario = usuario }); if (objLogin == null) { throw new Exception("Servicio Login no disponible."); } if (objLogin.ResultadoLogin == false) { throw new Exception(objLogin.MensajeError); } (new ManejadorLog()).RegistrarEvento(MethodBase.GetCurrentMethod().Name, Newtonsoft.Json.JsonConvert.SerializeObject(objLogin)); //OBTENEMOS LOS DATOS DE SEGURIDAD DEL USUARIO ResponseInfoUsuarioDTO objInfo = seguridadBL.GetInformacionUsuario(objLogin.IdPerfilUsuario); (new ManejadorLog()).RegistrarEvento(MethodBase.GetCurrentMethod().Name, Newtonsoft.Json.JsonConvert.SerializeObject(objInfo)); objInfo.IdPerfilUsuario = objLogin.IdPerfilUsuario; var tablaHash = new List <string>(); List <ResponseOpcionUI> menuOrdenado = new List <ResponseOpcionUI>(); seguridadBL.HacerTablaHash(objInfo.OpcionesUI, ref tablaHash, ref menuOrdenado, ref hashPermisosBotones); Session["usuario"] = new ResponseUsuarioMscDTO() { Usuario = new UsuarioDTO() { IdUsuario = objInfo.IdUsuario, IdPerfilUsuario = objLogin.IdPerfilUsuario, CodigoCargo = objInfo.CodigoCargo, CodigoUsuario = objInfo.CodigoUsuario, Email = objInfo.Correo, NombrePersona = objInfo.NombresCompletos.Split('(')[0], NombreUsuario = objInfo.CodigoUsuario.Split('\\')[1], Menu = menuOrdenado, Recursos = objInfo.RecursosAdicionales, Sedes = objInfo.Sedes, //TipoReclamo = objInfo.TipoReclamo, //Permisos = permisos, Permisos = tablaHash, RolDescripcion = objInfo.Roles[0].Descripcion, esExterno = objInfo.TipoUsuario == "E" ? true : false, TipoUsuario = objInfo.TipoUsuario, Alias = objInfo.Alias, PermisosBotones = hashPermisosBotones, Roles = objInfo.Roles }, }; FormsAuthentication.SetAuthCookie(objInfo.CodigoUsuario, false); return(Json(new Result { Satisfactorio = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { (new ManejadorLog()).RegistrarEvento(MethodBase.GetCurrentMethod().Name, ex.Message, ex.StackTrace); return(Json(new Result { Satisfactorio = false, Mensaje = ex.Message, Data = hashPermisosBotones }, JsonRequestBehavior.AllowGet)); } }