当前位置:错新网文章中心网站开发.Net → Asp.net 中mvc 实现超时弹窗后跳转功能

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

减小字体 增大字体 作者:xin  来源:www.cuoxin.com  发布时间:2017-8-4 9:34:29

为了实现保持登录状态,可以用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

(【错.新.网】 Cuoxin.com)


本文引用网址:

在下列搜索引擎中搜索“Asp.net 中mvc 实现超时弹窗后跳转功能”的相关信息:

谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1最新90后吹箫门事件曝光 90后女...
  • 2王梦溪未经处理雅照120P完整艳...
  • 3美女穿紧身裤性感诱惑露阴沟 宅...
  • 4如何做爱真人示范图片 男女ML常...
  • 5王婷不雅视频 王婷全裸艳照 王...
  • 117岁女孩身份证号大全 18岁女孩...
  • 2去掉dedecms栏目页和内容页的当...
  • 3我想更改前台页面的样子,改怎...
  • 4个人网站被挂马的解决方法
  • 5无法写入数据库的解决方法
  • 1兰州警花王梦溪裸照全集视频 王...
  • 2中国女大学生的淫靡生活
  • 3合肥艳照门事件 合肥艳照门全套...
  • 4嫩白少妇与猛男户外疯狂车震遭...
  • 5最流行的性交姿势图解 真人示范...
  • 1在Linux下建立VPN服务器来做加...
  • 2一般人不告诉他 墨盒喷头清洗方...
  • 3Linux和GNU有什么关系?
  • 4配置Linux的环境变量
  • 5Linux系统用户账号文件中passw...
  • 赞助商广告

    图片文章导读