c# - ASP.NET MVC Forms Authentication Domain 属性破坏了 Firefox 中的登录

标签 c# asp.net-mvc firefox iis forms-authentication

我正在尝试跨多个 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/

相关文章:

firefox - CSS 文本阴影 + 对空白的烦人效果

c# - 在 EF core 中,在一个类中添加实体后,如何在不调用 SaveChanges() 的情况下从不同的类访问该实体?

c# - 如何将以下嵌套 SQL 实现为 Lambda 语句

c# - .NET Core MVC Web API Controller 不返回数据,尽管与返回数据的 Controller 相同

c# - MVC 图像上传 - 上传方向不正确

javascript - __doPostBack() 导致回发但不调用 aspx 页面中的按钮单击事件

C# 编译器期望右大括号

c# - 在 DLL 中使用 NHibernate

jquery - 当div的内容改变时如何中断?

html - 需要在 html anchor 上单击两次才能转到 id 或名称