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); } } }
原文链接:http://www.cnblogs.com/cheesebar/archive/2017/02/10/6386479.html
(资源库 www.zyku.net)
栏 目:ASP.NET
本文地址:https://www.zyku.net/aspnet/527.html
您可能感兴趣的文章
- 03-25Win10 .Net Runtime Optimization Service占用大量CPU
- 03-21彻底解决Flash助手推荐弹窗广告(FF新推荐)
- 09-07jquery版右下角弹窗特效
- 04-17IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Inte
- 11-02无法向会话状态服务器发出会话状态请求。请确保 ASP.N
- 07-26asp.net使用ashx生成图形验证码的方法示例
- 07-18ASP.NET编程简单实现生成静态页面的方法
- 06-29ASP.NET中的参数与特殊类型和特性
- 06-29Asp.Net程序目录下文件夹或文件操作导致Session失效的
- 03-13纯js实现网站右下角弹窗实例
- 03-15sublime text 3文件路径没有提示的设
- 09-14华为手表怎么配对小米手机
- 11-10腾讯QQ秀折叠调出方法介绍
- 09-19word文档如何更改背景图片
- 03-13WordPres限制非管理员访问管理面板的
- 04-04Ubuntu下如何更改root密码
- 12-29怀孕知识-怀孕知识应用软件功能介绍
- 03-07修改MySQL用户密码的三种方法
- 12-05华为p50语音助手怎样唤醒
- 03-11symfony2在正式环境下配置立即生效需

最近更新
阅读排行
猜你喜欢
- 10-16轻颜相机关闭拍照声音方法介绍
- 11-12喜马拉雅fm驾驶模式在哪开
- 02-18基于Ajax技术实现无刷新用户登录功能
- 02-20CentOS7修改设置静态IP和DNS
- 12-26凯越瑜伽-凯越瑜伽应用软件功能介绍
- 02-23DedeCMS首页导航栏下拉菜单不显示的解
- 09-28华为nova9性能模式在哪开
- 11-29OPPO手机怎么设置自拍镜像
- 12-26经济师大象题库-经济师大象题库应用软
- 12-27智能血糖检测-智能血糖检测应用软件功