词条信息

xiazaiwo
xiazaiwo
进士
词条创建者 发短消息   

相关词条

热门词条

更多>>
做自媒体,每个月究竟能赚多少钱?
做自媒体可以赚钱,这是众所周知的,从几百到几千,最后到几万[详细]
华住个人信息泄露案告破
9月19日消息 根据华住集团官网的消息,9月17日,华住集[详细]
教你辨别原装和杂牌苹果充电器
  为什么同样是充电器原厂和山寨的价格会差这么多,难道就真[详细]
苹果iOS12支持的设备
iOS12已于今日凌晨正式发布了。据悉,本次iOS12的升级是[详细]
支付宝接入银联,支付行业将有这些大变化
支付宝接入银联传闻终于落地。9月14日,每日经济新闻(微信号:[详细]
解决网 >>所属分类 >> asp   

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

标签: 暂无标签

顶[0] 发表评论(0) 编辑词条

为了实现保持登录状态,可以用cookie来解决这一问题 www.solves.com.cn 电脑百科

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

www.solves.com.cn 电脑百科

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);
     }
   }
 }
 www.solves.com.cn 电脑百科 

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

www.solves.com.cn 电脑百科

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);
      }
    }
  }
}
 

www.solves.com.cn 电脑百科

但是,假如是ajax请求呢?

www.solves.com.cn 电脑百科

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);
      }
    }
  } www.solves.com.cn 电脑百科 

 

 

本文地址:解决网 http://www.solves.com.cn/doc-view-4515.html

TAGS:SOLVES , 电脑技术 , 电脑知识 , 网站建设, 电脑技术, 网络营销 , 网站托管 , 硬件技术 , 网络技术 , 软件技术, 维修网点

参考资料
[1].  Asp.net 中mvc 实现超时弹窗后跳转功能_下载我_精品源码软件教程资源网   http://www.xiazaiwo.net/tech/kaifa/net/11657.html

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇IIS 7.5中提供的Web服务器(IIS)角色服务详请
下一篇笔记本键盘失灵问题结局

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的电脑技术问题词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>