Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在AuthorizeAttribute.AuthorizeCore方法中,会话怎么可能为null?_C#_Asp.net Mvc_Session_Asp.net Mvc Migration - Fatal编程技术网

C# 在AuthorizeAttribute.AuthorizeCore方法中,会话怎么可能为null?

C# 在AuthorizeAttribute.AuthorizeCore方法中,会话怎么可能为null?,c#,asp.net-mvc,session,asp.net-mvc-migration,C#,Asp.net Mvc,Session,Asp.net Mvc Migration,我有一个自定义属性类,它继承自AuthorizeAttribute。有时参数httpContext.Session为空。这怎么可能?只要我被记录/激活,会话就应该是活动的,对吗?我不会浏览20分钟或更长时间,事实上我只是浏览0-2分钟,有时会话属性为空 自从我们从MVC 2(.NET 3.5)切换到MVC 4.5(.NET 4.5)之后,我们就出现了这个错误。这可能是问题的原因吗 我怎样才能解决这个问题 这怎么可能 如果禁用了会话状态,则可能发生这种情况。要禁用会话状态,可以在web.confi

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

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

我怎样才能解决这个问题

这怎么可能

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

<sessionState mode="Off" />

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

OnCacheAuthorization
在过滤器中。 或删除:

OutputCache

控制器中操作的属性。

放置一个条件断点并找出何时/如何调用它。@HenkHolterman我确实放置了一个条件断点,但没有调用堆栈。它只是说“[外部代码]”,最上面是断点所在的行。你能从上下文中学到什么?特别是请求的目标。@HenkHolterman我不知道你的确切意思,但在HttpContext中。当前是会话null,我没有
sessionState mode=“Off”
所有内容都设置为“InProc”。我也没有一个SessionState attributeA演示如何覆盖它,以及这将是什么,在这里很方便。这是怎么回事?当您从
OnCacheAuthorization
返回
HttpValidationStatus.Invalid
时,则根本不调用
authorizationcore
?确定。我发现:在这里搜索
OnCacheAuthorization(HttpContextBase-httpContext)
。干杯!:)因此,如果必须为缓存的操作验证会话,他会怎么做?会话对象未在
OnCacheAuthorization
内初始化。我的案子不需要,但如果需要呢?那不可能吗对不起,但这对我来说太晚了,我记不清细节了。我希望您能解决这个问题。@RomaineCarter我认为最简单的修复方法是在操作中自己实现一些缓存机制。
OutputCache