MVC 监控Session的类

2 篇文章 0 订阅
0 篇文章 0 订阅

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>


该资料仅供学习,禁止商业用途

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值