我在我的 global.asax Application_AuthenticateRequest 方法和授权属性 filterContext 的 HttpContext 以及控制器上下文中具有不同的 HttpContext 对象值。
我已将应用程序设置为运行单点登录。这是我的 web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" name="FormsAuth" timeout="2880000" domain="domain.com" slidingExpiration="true" defaultUrl="~/home/index"/>
</authentication>
然后登录,验证用户后,设置身份验证cookie。
FormsAuthentication.SetAuthCookie(userName, true);
现在的问题是,当断点在全局 asax Application_AuthenticateRequest 方法上命中时,Request.IsAuthenticated 为 true,但当它命中 Authorize 属性的 OnAuthorize 方法时,其 filterContext.HttpContext.Request.IsAuthenticated 为 false。即使用户有效,该页面也将始终重定向到登录页面。
有人可以解释为什么会这样吗?或任何解释 httpcontext 在 asp.net mvc 中的内部工作的博客论坛。在这种情况下,Core ASP.NET httpcontext 和 MVC httpcontext 似乎具有不同的价值。