您好我的ASP.NET MVC会话状态有一些问题,在我实现下面的代码并将属性放在方法之后没有到期。
public sealed class SessionActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext ctx = HttpContext.Current;
//Check if session is supported
if (ctx.Session != null)
{
//Check if the session is new
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 = filterContext.HttpContext.Request.Headers["Cookie"];
if ((sessionCookie != null) && (sessionCookie.IndexOf("ASP.NET_SessionId", StringComparison.OrdinalIgnoreCase) >= 0))
{
//Redirect to the login page
ctx.Response.Redirect("~/Home/Index", true);
ctx.Response.End();
}
}
}
base.OnActionExecuting(filterContext);
}
}
问题是重定向请求未执行,并且执行具有SessionActionFilter属性的Action。此方法使用已过期的会话变量并导致错误。
有人可以告诉我缺少什么吗?
提前多多感谢!!
答案 0 :(得分:0)
我们正在存储一些在我们的视图中使用的数据!!还有一个更新,我能够运行这段代码,现在工作正常。但是,我对使用cookie有点怀疑,并且需要将此代码转换为无cookie会话。这怎么可能?