2

我有一个自定义属性类,它继承自AuthorizeAttribute. 有时参数httpContext.Session为空。这怎么可能?只要我登录/活跃,会话就应该是活跃的,对吗?我没有浏览 20 分钟或更长时间,实际上我只是浏览了 0-2 分钟,有时 Session 属性为空。

自从我们从 MVC 2 (.NET 3.5) 切换到 MVC 4.5 (.Net 4.5) 后,我们就有了这个错误。这可能是问题的原因吗?

我该如何解决这个问题?

4

2 回答 2

1

这怎么可能?

如果您禁用了会话状态,则可能会发生这种情况。为了禁用会话状态,您可以在 web.config 中包含以下内容:

<sessionState mode="Off" />

或者您可以使用以下[SessionState]属性装饰您的控制器/基本控制器/动作:

[SessionState(SessionStateBehavior.Disabled)]
public class HomeController : Controller
{
    ...
}
于 2012-10-08T13:41:02.937 回答
1

这可能是一个缓存问题。尝试覆盖:

OnCacheAuthorization

在过滤器中。或删除:

OutputCache

来自控制器中动作的属性。

于 2015-03-09T13:32:44.907 回答