我有一个自定义属性类,它继承自AuthorizeAttribute
. 有时参数httpContext.Session
为空。这怎么可能?只要我登录/活跃,会话就应该是活跃的,对吗?我没有浏览 20 分钟或更长时间,实际上我只是浏览了 0-2 分钟,有时 Session 属性为空。
自从我们从 MVC 2 (.NET 3.5) 切换到 MVC 4.5 (.Net 4.5) 后,我们就有了这个错误。这可能是问题的原因吗?
我该如何解决这个问题?
我有一个自定义属性类,它继承自AuthorizeAttribute
. 有时参数httpContext.Session
为空。这怎么可能?只要我登录/活跃,会话就应该是活跃的,对吗?我没有浏览 20 分钟或更长时间,实际上我只是浏览了 0-2 分钟,有时 Session 属性为空。
自从我们从 MVC 2 (.NET 3.5) 切换到 MVC 4.5 (.Net 4.5) 后,我们就有了这个错误。这可能是问题的原因吗?
我该如何解决这个问题?
这怎么可能?
如果您禁用了会话状态,则可能会发生这种情况。为了禁用会话状态,您可以在 web.config 中包含以下内容:
<sessionState mode="Off" />
或者您可以使用以下[SessionState]
属性装饰您的控制器/基本控制器/动作:
[SessionState(SessionStateBehavior.Disabled)]
public class HomeController : Controller
{
...
}
这可能是一个缓存问题。尝试覆盖:
OnCacheAuthorization
在过滤器中。或删除:
OutputCache
来自控制器中动作的属性。