全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Asp.net 中mvc 实现超时弹窗后跳转功能

为了实现保持登录状态,可以用cookie来解决这一问题

假设过期时间为30分钟,校验发生在服务器,借助过滤器,可以这样写

 public class PowerFilter : AuthorizeAttribute
  {
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      var cookie = HttpContext.Current.Request.Cookies["loginInfo"];
      if(null == cookie)
      {
        filterContext.Result = new RedirectResult("/admin/login/index");
      }
      else
      {
        cookie.Expires = DateTime.Now.AddMinutes(30);
        HttpContext.Current.Response.Cookies.Remove("loginInfo");
        HttpContext.Current.Response.Cookies.Add(cookie);
      }
    }
  }

但是页面直接跳转了,也没有一个提示,显得不是很友好,可以这样

public class PowerFilter : AuthorizeAttribute
  {
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      var cookie = HttpContext.Current.Request.Cookies["loginInfo"];
      if(null == cookie)
      {
        filterContext.Result = new ContentResult()
        {
          Content = string
          .Format("<script>alert('登录超时,请重新登录');location.href='{0}'</script>","/admin/login/index")
        };
      }
      else
      {
        cookie.Expires = DateTime.Now.AddMinutes(30);
        HttpContext.Current.Response.Cookies.Remove("loginInfo");
        HttpContext.Current.Response.Cookies.Add(cookie);
      }
    }
  }
}

但是,假如是ajax请求呢?

public class PowerFilter : AuthorizeAttribute
  {
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      var cookie = HttpContext.Current.Request.Cookies["loginInfo"];
      if(null == cookie)
      {
        if(!filterContext.HttpContext.Request.IsAjaxRequest())
        {
          filterContext.Result = new ContentResult()
          {
            Content = string
                 .Format("<script>alert('登录超时,请重新登录');location.href='{0}'</script>","/admin/login/index")
          };
        }
        else
        {
          filterContext.Result = new JsonResult()
          {
            Data = new { logoff = true,logurl = "/admin/login/index" },
            ContentType = null,
            ContentEncoding = null,
            JsonRequestBehavior = JsonRequestBehavior.AllowGet
          };
        }
      }
      else
      {
        cookie.Expires = DateTime.Now.AddMinutes(30);
        HttpContext.Current.Response.Cookies.Remove("loginInfo");
        HttpContext.Current.Response.Cookies.Add(cookie);
      }
    }
  }

以上所述是小编给大家介绍的Asp.net 中mvc 实现超时弹窗后跳转功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mvc  # 超时弹窗跳转  # 详解springmvc控制登录用户session失效后跳转登录页面  # webix+springmvc session超时跳转登录页面  # 跳转  # 小编  # 这一  # 也没  # 在此  # 可以用  # 不是很  # 给大家  # 时间为  # 所述  # 给我留言  # 感谢大家  # 有一个  # 疑问请  # 有任何  # 发生在  # Request  # HttpContext  # Current  # loginInfo 


相关文章: 网站制作软件有哪些,制图软件有哪些?  建站主机数据库如何配置才能提升网站性能?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  php json中文编码为null的解决办法  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何在阿里云通过域名搭建网站?  如何规划企业建站流程的关键步骤?  黑客如何通过漏洞一步步攻陷网站服务器?  如何挑选最适合建站的高性能VPS主机?  建站之星如何实现PC+手机+微信网站五合一建站?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何用腾讯建站主机快速创建免费网站?  西安大型网站制作公司,西安招聘网站最好的是哪个?  定制建站如何定义?其核心优势是什么?  如何在IIS中新建站点并解决端口绑定冲突?  太平洋网站制作公司,网络用语太平洋是什么意思?  建站之星收费标准详解:套餐费用及年费价格表一览  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何用PHP快速搭建CMS系统?  如何快速完成中国万网建站详细流程?  python的本地网站制作,如何创建本地站点?  建站OpenVZ教程与优化策略:配置指南与性能提升  建站之星Pro快速搭建教程:模板选择与功能配置指南  如何快速生成专业多端适配建站电话?  网站制作难吗安全吗,做一个网站需要多久时间?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  建站VPS能否同时实现高效与安全翻墙?  如何高效生成建站之星成品网站源码?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】    常州自助建站:操作简便模板丰富,企业个人快速搭建网站  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  专业网站建设制作报价,网页设计制作要考什么证?  建站之星如何开启自定义404页面避免用户流失?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  定制建站策划方案_专业建站与网站建设方案一站式指南  建站三合一如何选?哪家性价比更高?  如何选择PHP开源工具快速搭建网站?  javascript中对象的定义、使用以及对象和原型链操作小结  如何快速搭建高效WAP手机网站吸引移动用户?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何配置FTP站点权限与安全设置?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何零成本快速生成个人自助网站?  成都品牌网站制作公司,成都营业执照年报网上怎么办理? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。