我们目前正在部署一个MVC应用程序,该应用程序还需要支持许多因公司策略而阻止cookie的客户端。我们将无Cookie会话和身份验证设置为自动检测,因为我们发现cookieless =“UseDeviceProfile”完全不可靠,因为我们必须支持多个浏览器,并且Chrome(以及IE9)使用此设置(UseDeviceProfile)。除了一个实例之外,设置“AutoDetect”的一切都很有效:
如果用户阻止了http://somehost.com中的Cookie和类型,ASP.Net会在字符串末尾添加?AspAutoDetectCookieSupport = 1,并为您留下http://somehost.com?AspAutoDetectCookieSupport=1的网址。当这个字符串进入我们的MVC应用程序时,会出现404错误。但是,如果在初始URL的末尾添加“/”,如 http://somehost.com/,然后一切都按预期工作,ASP.Net在会话字符串前面加上网址(例如http://somehost.com/(sessionstring)/ ......
这将是一个边缘案例,因为绝大多数用户将从我们发送给他们的网址点击应用程序,这不会受到这个“错误”的影响。此外,绝大多数用户也将启用cookie。但是我们仍然不希望即使是那些会影响这个丑陋错误的少数用户。
有什么建议吗?