public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                if (HttpContext.Current.Session["SessionTipoUsuario"] == null)
                {
                    UsuarioModels  Usuario       = new UsuarioModels();
                    _Usuario_Datos usuario_datos = new _Usuario_Datos();
                    Usuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    Usuario.cuenta = user.Identity.Name;
                    int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName(Usuario);
                    HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
                }
                else
                {
                    int TipoUsuario = (int)HttpContext.Current.Session["SessionTipoUsuario"];
                    HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsuario;
                }
                if (HttpContext.Current.Session["SessionListaPermiso"] == null)
                {
                    UsuarioModels Usuario = new UsuarioModels();

                    LoginDatos LoginD = new LoginDatos();
                    Usuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    Usuario.cuenta = user.Identity.Name;
                    Usuario        = LoginD.ObtenerPermisos(Usuario);
                    List <string> ListaPermiso = new List <string>();
                    foreach (var item in Usuario.ListaPermisos)
                    {
                        ListaPermiso.Add(item.NombreUrl);
                    }
                    HttpContext.Current.Session["SessionListaPermiso"] = ListaPermiso;
                }
                else
                {
                    List <string> ListaPermiso = new List <string>();
                    ListaPermiso = (List <string>)HttpContext.Current.Session["SessionListaPermiso"];
                    HttpContext.Current.Session["SessionListaPermiso"] = ListaPermiso;
                }
                if (HttpContext.Current.Session["NombreUsuario"] == null)
                {
                    UsuarioModels CuentaUsuario = new UsuarioModels();
                    CuentaUsuario.conexion = Conexion;
                    IPrincipal user = HttpContext.Current.User;
                    CuentaUsuario.id_usuario = user.Identity.Name;
                    int TipoUsuario = (int)HttpContext.Current.Session["SessionTipoUsuario"];
                    CuentaUsuario.id_tipoUsuario = TipoUsuario;
                    CuentaUsuario = _Usuario_Datos.ObtenerUsuario(CuentaUsuario);
                    HttpContext.Current.Session["NombreUsuario"] = CuentaUsuario.tablaUsuario.Rows[0]["Nombre"];
                }
                else
                {
                    string NombreUsuario = (string)HttpContext.Current.Session["NombreUsuario"];
                    HttpContext.Current.Session["NombreUsuario"] = NombreUsuario;
                }
            }
        }
        public ActionResult Index()
        {
            try
            {
                FormsAuthentication.SignOut();
                if (User.Identity.IsAuthenticated)
                {
                    UsuarioModels  usuario      = new UsuarioModels();
                    _Usuario_Datos UsuarioDatos = new _Usuario_Datos();
                    usuario.conexion = Conexion;
                    usuario.cuenta   = User.Identity.Name;

                    int TipoUsario = UsuarioDatos.ObtenerTipoUsuarioByUserName(usuario);
                    if (TipoUsario == 1)
                    {
                        return(RedirectToAction("Index", "HomeAdmin", new { Area = "Admin" }));
                    }
                    //else if (id_tipoUsuario == "1")
                    //{
                    //    return RedirectToAction("Index", "HomeProfesor", new { Area = "Profesor" });
                    //}
                    else
                    {
                        return(RedirectToAction("LogOff", "Account"));
                    }
                }
                else
                {
                    return(View());
                }
            }
            catch (Exception)
            {
                return(RedirectToAction("LogOff", "Account"));
            }
        }
 public ActionResult Index(UsuarioModels model, string returnUrl)
 {
     try
     {
         LoginDatos UD = new LoginDatos();
         model.conexion = Conexion;
         model          = UD.ValidarUsuario(model);
         if (model.opcion == 1)
         {
             FormsAuthentication.SignOut();
             _Usuario_Datos usuario_datos = new _Usuario_Datos();
             UsuarioModels  usuario       = new UsuarioModels();
             usuario.conexion = Conexion;
             usuario.cuenta   = model.id_usuario;
             int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName(usuario);
             System.Web.HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
             FormsAuthentication.SetAuthCookie(model.id_usuario, model.RememberMe);
             HttpCookie authCookie                  = FormsAuthentication.GetAuthCookie(model.id_usuario, model.RememberMe);
             FormsAuthenticationTicket ticket       = FormsAuthentication.Decrypt(authCookie.Value);
             List <string>             listaPermiso = new List <string>();
             foreach (var item in model.ListaPermisos)
             {
                 listaPermiso.Add(item.NombreUrl);
             }
             System.Web.HttpContext.Current.Session["SessionListaPermiso"] = listaPermiso;
             System.Web.HttpContext.Current.Session["NombreUsuario"]       = model.nombreCompleto;
             if (TipoUsario == 1)
             {
                 return(RedirectToAction("Index", "HomeAdmin", new { Area = "Admin" }));
             }
             else
             {
                 ModelState.AddModelError("", "No tienes permisos");
                 Session.Abandon();
                 Session.Clear();
                 Session.RemoveAll();
                 return(View(model));
             }
         }
         else if (model.opcion == 2)
         {
             ModelState.AddModelError("", "Usuario no existe");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
         else if (model.opcion == 3)
         {
             ModelState.AddModelError("", "Error de Contraseña");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
         else if (model.opcion == 4)
         {
             ModelState.AddModelError("", "El usuario tiene que ser de tipo. Administrador");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
         else
         {
             ModelState.AddModelError("", "El usuario o contraseña son incorrectos!!.");
             Session.Abandon();
             Session.Clear();
             Session.RemoveAll();
             return(View(model));
         }
     }
     catch (Exception ex)
     {
         ModelState.AddModelError("", "Contacte a soporte técnico. " + ex.Message);
         Session.Abandon();
         Session.Clear();
         Session.RemoveAll();
         return(View(model));
     }
 }