Asp.net 中mvc 实现超时弹窗后跳转功能
2017-02-10 16:18
531 查看
为了实现保持登录状态,可以用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 实现超时弹窗后跳转功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- asp.net mvc在网页上实现客户点击时创建到此网站的桌面快捷键功能
- asp.net mvc实现 错误异常记录功能
- 在 Asp.NET MVC 中使用 SignalR 实现推送功能
- 使用Zxing.net实现asp.net mvc二维码功能
- ASP.NET MVC应用程序实现下载功能
- Asp.net MVC使用swupload实现多图片上传功能
- asp.net MVC 统计在线人数功能实现
- 在 Asp.NET MVC 中使用 SignalR 实现推送功能
- 利用CSS预处理技术实现项目换肤功能-(less css+asp.net mvc bundle)
- 在 Asp.NET MVC 中使用 SignalR 实现推送功能
- AspnetMvc实现无刷新省市联动功能
- Asp.net实现MVC处理文件的上传下载功能实例教程
- asp.net 登录超时跳转到登录页 后台实现
- ASP.NET MVC实现网站验证码功能
- 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能
- ASP.NET MVC实现网站验证码功能
- ASP.NET MVC4 WEB API入门 第二篇:ASP.NET MVC入门基础(2)—— 简单登录功能的实现
- ASP.Net MVC+Data Table实现分页+排序功能的方法
- 在 Asp.NET MVC 中使用 SignalR 实现推送功能
- Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室)