Asp.net MVC Session过期异常的处理

对于用户登录后将数据存储到session中,但是对于session过期引发的异常,会导致很多程序崩溃,或数据不对。所以正对于session过期处理,势在必行。

1.在一些数据持久化的操作中,我们会使用一些session中的数据,向后台进行数据持久化,但是如果session中没有数据的话,会出现很多意想不到的错误。(一般的session过期)
  使用MVC中的Filter来对Session进行验证:MVC中的 AuthorizationFilter 能够在实际访问Controller前,拦截请求,这个时候在这里可以对Session的有效性进行检查,如果发现Session失效了,就把用户转向登陆页
  代码如下:
  

 1 public class MyAuthorizeAttribute : FilterAttribute, IAuthorizationFilter
 2 {
 3   public void OnAuthorization(AuthorizationContext filterContext)
 4   {
 5     var loginUser = filterContext.HttpContext.Session["User"];
 6     //当session过期的时候,进行跳转
 7     if (loginUser == null)
 8     {
 9       var redirectUrl = ""; //跳转的地址10       filterContext.Result = new RedirectResult(redirectUrl);
11       return;
12     }
13   }
15 }

 

2.对于Ajax请求的中,Session失效的处理:如果发现是Ajax请求,就返回 特定格式的Json数据 ,客户端对于这个数据进行处理,发现有Session失效的情况,就跳转到登录页面。
代码如下:

 1 public class MyAuthorizeAttribute : FilterAttribute, IAuthorizationFilter
 2 {
 3   public void OnAuthorization(AuthorizationContext filterContext)
 4   {
 5     var loginUser = filterContext.HttpContext.Session["User"];
 6     //When user has not login yet
 7     if (loginUser == null)
 8     {
 9       var redirectUrl = ""; //跳转的地址
10       if(!filterContext.HttpContext.Request.IsAjaxRequest())
11       {
12         filterContext.Result = new RedirectResult(redirectUrl);
13       }
14       else
15       {
16         filterContext.Result = new JsonResult
17       {
18         Data = new
19         {
20           Success = false,
21           Message = string.Empty,
22           Redirect = redirectUrl
23         }
24       };
25     }
26     return;
27   }
28 }

客户端的js代码如下:

 1 $.ajax({
 2     type: "POST",
 3     url: "url",
 4     success: function (msg) {
 5         if (msg.Success) {
 6             ……. 
 7         }
 8         if (msg.Redirect) {
 9             window.location = msg.Redirect;
10         }
11     }
12 });        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>Asp.net mvc是一种基于Microsoft .NET技术的Web开发框架,它将Web应用程序分为三个基本组件:模型、视图和控制器。模型提供了应用程序的数据层,视图用于呈现数据,而控制器负责处理用户请求并调用相应的模型和视图。 Vue3是一种流行的JavaScript框架,用于构建用户界面。Vue3具有轻量级和高可用性等优点,同时,它还提供许多功能和插件,例如路由和状态管理、单文件组件和自定义指令等。 当Asp.net mvc与Vue3结合使用时,可以实现更加高效可靠的Web开发。Vue3可以用于构建Asp.net mvc中的视图,并与控制器集成,以执行前端逻辑。此外,Vue3还可以与Asp.net mvc中的Model绑定,实现更加灵活的应用程序状态管理。 总之,Asp.net mvc和Vue3的结合能够为Web开发者提供更好的开发体验,使得应用程序更加易于维护,同时还可以实现更好的性能和用户体验。 <h3>回答2:</h3><br/>ASP.NET MVC和Vue3是两种常用的Web开发框架,都具有其独特的优势和应用范围。 ASP.NET MVC是一种基于Microsoft .NET Framework的Web框架,它采用了Model-View-Controller(MVC)架构模式,可以快速创建强大的Web应用程序,并提供了许多强大的功能,如路由、数据处理、身份验证和授权等。ASP.NET MVC的强大之处在于它可以使用C#或VB.NET这样传统的编程语言创建动态Web应用程序,同时也提供了多种扩展和插件来实现更多功能。 Vue3则是一种流行的JavaScript框架,专注于构建用户界面,采用了响应式编程的方式,使得开发人员可以更轻松地构建可交互的前端应用程序。Vue3具有高度的灵活性和可扩展性,可以结合各种其他库和工具使用,并且具有类似的生命周期和组件模型,方便进行开发和测试。 而将ASP.NET MVC和Vue3结合起来开发Web应用,则可以充分发挥两者各自的优势,同时解决不同开发场景下面临的问题。例如,ASP.NET MVC可以提供数据处理和身份验证等后端功能,而Vue3则可以用于构建前端UI和实现响应式交互,两者之间可以通过API接口进行数据传输和交互,从而实现Web应用的全栈开发。 总之,ASP.NET MVC和Vue3都是非常强大的Web开发框架,他们各自独有的功能和优势为开发人员提供了许多选择和创造性的空间,同时也可以结合使用,进一步扩展应用场景,提高开发效率和应用性能。 <h3>回答3:</h3><br/>ASP.NET MVC是一种基于ASP.NET框架的Web应用程序开发模型,它提供了在Web应用程序中使用MVC架构。ASP.NET MVC的特点是支持强类型视图,并且使用Razor编程语法,从而可以快速构建Web应用程序。同时,其面向控制器的编程模型可以让开发者更加轻松地管理应用程序的状态。 Vue3是Vue.js框架的最新版本,它具有多项改进,如更高效的组件渲染,快速启动性能的提升,更好的TypeScript支持,更好的开箱即用的体验等。Vue3还引入了一些新的概念,例如Composition API、Teleport、Transition等,使得开发者可以更加灵活地构建Web应用程序。 结合ASP.NET MVC和Vue3可以提高Web应用程序的开发效率和用户体验。开发者可以使用ASP.NET MVC作为后端框架,提供API接口以供Vue3前端调用。Vue3可以通过axios等库实现与后端API的数据交互,同时也可以使用Vue Router实现SPA(Single-page application)应用程序的路由管理。这些功能的结合可以实现高效、可扩展的Web应用程序开发,提升应用程序的用户体验和用户满意度。 总之,ASP.NET MVC和Vue3都是Web应用程序开发的优秀框架,它们的相互结合可以让开发者更加快速、高效地构建Web应用程序,同时也为用户带来更好的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值