C# asp.net Mvc4中用于处理会话超时的会话启动和操作筛选器

C# asp.net Mvc4中用于处理会话超时的会话启动和操作筛选器,c#,sql-server,asp.net-mvc,asp.net-mvc-5,C#,Sql Server,Asp.net Mvc,Asp.net Mvc 5,asp.net Mvc4中用于会话超时处理的会话启动和操作筛选器? 创建SessionExpireFilter类以继承ActionFilterAttribute 我试图检测会话何时为空,然后在操作过滤器概念中将用户重定向到主页 Below code is follow public class SessionExpireFilterAttribute : ActionFilterAttribute { public overrid

asp.net Mvc4中用于会话超时处理的会话启动和操作筛选器?

创建SessionExpireFilter类以继承ActionFilterAttribute

我试图检测会话何时为空,然后在操作过滤器概念中将用户重定向到主页

Below code is follow 
    public class SessionExpireFilterAttribute : ActionFilterAttribute
            {
                public override void OnActionExecuting(ActionExecutingContext filterContext)
                {
                    HttpContext ctx = HttpContext.Current;

                    // check if session is supported
                    if (ctx.Session != null)
                    {
                        // check if a new session id was generated
                        if (ctx.Session.IsNewSession)
                        {
                            // If it says it is a new session, but an existing cookie exists, then it must
                            // have timed out
                            string sessionCookie = ctx.Request.Headers["Cookie"];
                            if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0))
                            {
                                ctx.Response.Redirect("~/Account/JIOLogin");
                            }
                        }
                    }
                    base.OnActionExecuting(filterContext);
                }
            }

**To add a with in web.config some changes** 

<system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime maxRequestLength="104857600" />
    <customErrors mode="Off" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="1" />
    </authentication>
    **<sessionState timeout="20"></sessionState>** 
    <pages controlRenderingCompatibilityVersion="4.0" />
  </system.web>

Controller level to apply Attribute is  [SessionExpireFilter] 

[SessionExpireFilter]
    public class HomeController : Controller
    {

        dbEntities1 db = new dbEntities1();
        public ActionResult Index()
        {
            return View();
        }
}
下面的代码如下所示 公共类SessionExpireFilterAttribute:ActionFilterAttribute { 公共覆盖无效OnActionExecuting(ActionExecutingContext filterContext) { HttpContext ctx=HttpContext.Current; //检查是否支持会话 如果(ctx.Session!=null) { //检查是否生成了新的会话id if(ctx.Session.IsNewSession) { //如果它说这是一个新会话,但存在一个现有cookie,那么它必须 //超时 字符串sessioncokie=ctx.Request.Headers[“Cookie”]; if((null!=sessionokie)和&(sessionokie.IndexOf(“ASP.NET_SessionId”)>=0)) { ctx.Response.Redirect(“~/Account/jiogin”); } } } base.OnActionExecuting(filterContext); } } **要在web.config中添加带有某些更改的文件** **** 要应用属性的控制器级别为[SessionExpireFilter] [SessionExpireFilter] 公共类HomeController:控制器 { dbEntities1 db=新的dbEntities1(); 公共行动结果索引() { 返回视图(); } }
OK。那么你面临的具体问题是什么?