• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > Asp.net 中mvc 实现超时弹窗后跳转功能

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

作者:行走即歌 字体:[增加 减小] 来源:互联网 时间:2017-05-11

行走即歌通过本文主要向大家介绍了mvc与asp.net的区别,mvc框架 asp.net,mvc asp.net,pro asp.net core mvc,asp net mvc 4等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

但是,假如是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);
      }
    }
  }
</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • asp.net core mvc实现伪静态功能
  • ASP.NET Core中使用默认MVC路由的配置
  • Asp.net 中mvc 实现超时弹窗后跳转功能
  • asp.net实现的MVC跨数据库多表联合动态条件查询功能示例
  • ASP.NET实现MVC中获取当前URL、controller及action的方法
  • ASP.NET Core MVC压缩样式、脚本详解
  • asp.net core mvc实现文件上传实例
  • asp.net如何进行mvc异步查询
  • asp.net如何进行mvc异步查询
  • ASP.NET中MVC传递数据的几种形式总结

相关文章

  • 2017-05-11SqlConnection.ConnectionString相关关键字
  • 2017-05-11C#Web应用程序入门经典学习笔记之二
  • 2017-05-11ASP.NET实现多域名多网站共享Session值的方法
  • 2017-05-11asp.net 验证字符串是否为纯数字检测函数
  • 2017-05-11Elasticsearch.Net使用入门教程(1)
  • 2017-05-11Server.Transfer,Response.Redirect的区别
  • 2017-05-11.Net 文本框实现内容提示的实例代码(仿Google、Baidu)
  • 2017-05-11从零开始学ASP.NET-基础篇第1/7页
  • 2017-05-11使用ASP.NET创建线程实例教程
  • 2017-05-11用扩展方法优化多条件查询(不定条件查询)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net B2B网站对接支付宝接口
    • 如何限制asp.net中上传文件的大小的代码
    • asp.net使用DataGridTree实现下拉树的方法
    • 解读ASP.NET 5 & MVC6系列教程(6):Middleware详解
    • asp.net 文件上传 实时进度
    • Asp.net的服务器推技术 (Server Push)
    • asp.net使用ashx生成图形验证码的方法示例
    • .net GridView分页模板的实例代码
    • .NET 日志系统设计思路及实现代码
    • ASP.NET MVC文件上传教程(二)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有