我正在尝试跨多个 ASP.NET MVC 网络应用程序共享身份验证。这些应用程序具有不同的子域,例如x.example.com,y.example.com。我已经生成了一个机器 key 并将其添加到应用程序的 web.config 中。我已将域属性添加到表单标记 (domain = "example.com")。
这似乎在 Chrome 中工作正常。登录第一个应用程序后,我导航到第二个应用程序并且不需要登录。但是,在 Firefox 中,它似乎中断了登录。当我单击登录按钮时,Firefox 似乎会快速重新加载登录页面。我无法登录。
是什么导致了这种行为? Firefox 不喜欢用这个域编写的 cookie 中有什么东西吗?
最佳答案
浏览器使用同源策略来确定是否向网站发送 cookie:发送到主机的 HTTP 请求将包含且仅包含那些 Domain 属性标识主机本身或主机所在的 DNS 域的 cookie属于。 (Path 和 Port 属性也被考虑在内。)设置 cookie 时,允许 Web 服务器省略 Domain 属性(然后浏览器将此属性设置为服务器的主机名)或将其设置为服务器的父域.例如,主机 x.domain1.com 可能将域设置为 .domain1.com 而不是 .domain2.com。要设置 cookie,Web 服务器使用 Set-Cookie HTTP header ;将 cookie 中继到 Web 服务器浏览器使用 Cookie header 。
关于c# - ASP.NET MVC Forms Authentication Domain 属性破坏了 Firefox 中的登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011200/