MVC 监控Session的类
介绍:在做MVC时,难免会遇到使用一些Session来进行赋值和使用,虽然方法好用,但却也会出现Session过期的问题,导致无法点击网页,或者项目出现错误,而写一个类来对Session进行监听,则就不会出现错误无法知道的问题了,当然,当Session过期了,只能重新登陆,对Session再次进行操作;用监控Session的类型来重定向网页,直接跳转到登陆界面,这样岂不是更加好。
创建监控Session的类:
public class CheckLogin : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext SessionContext)
{
if (SessionContext.HttpContext.Session != null)
{
if (SessionContext.HttpContext.Session.IsNewSession)
{
var SessionCookie = SessionContext.HttpContext.Request.Headers["Cookie"];//从缓存中获取Session的Cookie
//判断是否存在Session缓存,查找Cookie中Session
if ((SessionCookie != null) && (SessionCookie.IndexOf("ASP.NET_SessionId", StringComparison.OrdinalIgnoreCase) >= 0))
{
SessionContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { Controller = "Main", Action = "LoginOff" }));//这里是跳转到Main下的LoginOff,自己定义
}
}
}
}
}<span style="font-size:18px;">
</span>
在需要的控制器中以标签的形式使用:
[CheckLogin()]
在Web.config配置Session过期时间(生命周期)
<system.web>
<sessionState mode="InProc" cookieless="false" timeout="120" />
</system.web>
该资料仅供学习,禁止商业用途