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));
     }
 }
        public ActionResult Index(CatAdministrativoModels model, string returnUrl)
        {
            LoginDatos UD = new LoginDatos();

            model.conexion = Conexion;
            model          = UD.ValidarUsuario(model);
            if (model.opcion == 1)
            {
                FormsAuthentication.SignOut();
                UsuarioDatos  usuario_datos = new UsuarioDatos();
                UsuarioModels usuario       = new UsuarioModels();
                usuario.conexion = Conexion;
                usuario.cuenta   = model.id_administrativo;
                int TipoUsario = usuario_datos.ObtenerTipoUsuarioByUserName2(usuario);
                System.Web.HttpContext.Current.Session["SessionTipoUsuario"] = TipoUsario;
                FormsAuthentication.SetAuthCookie(model.id_administrativo, model.RememberMe);
                HttpCookie authCookie                  = FormsAuthentication.GetAuthCookie(model.id_administrativo, 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;
                //AdministrativoPermisoJson Json = new AdministrativoPermisoJson { NombreURl = listaPermiso};
                //string userDataString = JsonConvert.SerializeObject(Json);
                //FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(TipoUsario, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, userDataString);
                //authCookie.Value = FormsAuthentication.Encrypt(newTicket);
                //Response.Cookies.Add(authCookie);
                string id_tipoUsuario = usuario_datos.ObtenerTipoUsuarioByUserName(usuario);
                if (id_tipoUsuario == "3")
                {
                    return(RedirectToAction("Index", "HomeAdmin", new { Area = "Admin" }));
                }
                else if (id_tipoUsuario == "1")
                {
                    return(RedirectToAction("Index", "HomeProfesor", new { Area = "Profesor" }));
                }
                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 ó Profesor");
                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));
            }
        }