Пример #1
0
        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));
            }
        }