C# ASP.NET MVC表单身份验证域属性中断Firefox中的登录

C# ASP.NET MVC表单身份验证域属性中断Firefox中的登录,c#,asp.net-mvc,firefox,iis,forms-authentication,C#,Asp.net Mvc,Firefox,Iis,Forms Authentication,我正在尝试跨多个ASP.NET MVC web应用共享身份验证。这些应用程序有不同的子域,例如x.example.com、y.example.com。我已经生成了一个机器密钥并将其添加到应用程序的web.config中。我已将domain属性添加到forms标记(domain=“example.com”) 这似乎在Chrome中正常工作。登录到第一个应用程序后,我导航到第二个应用程序,无需登录。然而,在Firefox中,它似乎破坏了登录。当我点击登录按钮时,Firefox似乎会快速重新加载登录页

我正在尝试跨多个ASP.NET MVC web应用共享身份验证。这些应用程序有不同的子域,例如x.example.com、y.example.com。我已经生成了一个机器密钥并将其添加到应用程序的web.config中。我已将domain属性添加到forms标记(domain=“example.com”)

这似乎在Chrome中正常工作。登录到第一个应用程序后,我导航到第二个应用程序,无需登录。然而,在Firefox中,它似乎破坏了登录。当我点击登录按钮时,Firefox似乎会快速重新加载登录页面。我无法登录


是什么导致了这种行为?使用此域编写的cookie是否有Firefox不喜欢的地方?

浏览器使用同源策略来确定是否向网站发送cookie:发送到主机的HTTP请求将包含这些cookie,并且仅包含那些其域属性标识主机本身或主机所属DNS域的cookie属于。(还考虑了路径和端口属性。)设置cookie时,允许Web服务器忽略域属性(然后浏览器将该属性设置为服务器的主机名)或将其设置为服务器的父域。例如,主机x.domain1.com可以将域设置为.domain1.com,但不能设置为.domain2.com。要设置Cookie Web服务器,请使用set Cookie HTTP标头;要将Cookie中继到Web服务器浏览器,请使用Cookie标头。

可能与CORS有关,请检查:您是否尝试在开发人员工具的“网络”选项卡中检查请求。应该设置了ASP cookie,您可以检查发送到子域x的身份验证cookie是否也发送到子域y。您还可以尝试在cookie名称前面加上“.”