当从移动设备浏览我的 ASP.NET 站点时,FormsAuthentication.CookiesSupported 属性有时会在没有任何明显原因的情况下返回 false。例如,我在移动 Safari 中打开我的 ASP.NET 登录页面,并且 FormsAuthentication.CookiesSupported 为 true。经过一段时间的不活动后,我刷新了这个页面,现在 FormsAuthentication.CookiesSupported 是假的。此时我在移动 Chrome 或 Dolphin 中打开同一页面,并且 CookiesSupported 在所有页面中也是错误的。然后我重新启动 IIS,在某些情况下,这会导致 CookiesSupported 在所有浏览器中再次为真,有时它仍然为假。同样,一段时间后它可能会成为现实。在所有浏览器配置中始终启用 Cookie 支持。
在 CookiesSupported 为 false 并且我调用 FormsAuthentication.SetAuthCookie 函数的情况下,ASP.NET 使用 URI 进行身份验证票证。我可以忍受,但更改后的 URI 会导致另一个问题。问题是 WebResource.axd 停止工作。asp:LinkButton 在呈现时调用 WebForm_DoPostBackWithOptions ,在将 auth cookie 添加到 URI 的情况下未定义。
所以基本上,我有两个问题:
为什么 FormsAuthentication.CookiesSupported 会间歇性地为移动浏览器(Safari、Chrome、Dolphin)返回 false 以及如何解决此问题?
为什么将身份验证 cookie 插入 URI 时 WebResource.axd 停止工作?