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