IIS 表单身份验证跨域不重定向到正确的域

IIS forms authentication cross domain not redirecting to correct domain

我在一个 IIS 7 实例上有 2 个站点 运行。

A.site.com B.site.com

这些站点使用表单身份验证,并且在站点 A 上有一种用于登录的表单。

因此,如果我尝试使用 URL

访问站点 B 上的受限页面

B.site.com/TEST/

我被重定向到

A.site.com/login.aspx?ReturnUrl=%2TEST%2f

然后我可以输入用户名和密码进行身份验证。到目前为止一切顺利。

身份验证后,我被重定向到

A.site.com/TEST/

而不是

B.site.com/TEST/

谁能告诉我如何解决这个问题并使 IIS 将我重定向到正确的页面?

注意:身份验证工作正常 - 我可以转到页面 B.site.com/TEST/,我不再被重定向到登录页面。所以问题只是重定向到错误的站点或者 ReturnUrl 的值不应该是相对路径。

解决方法可能是强制用户使用 JS 返回到最后一页。虽然我承认这不是一个很好的答案。我认为这是一个 IIS 错误,因为使用不同子域设置表单身份验证的文档根本没有提到这个问题。

编辑:

更好的答案是更改 loginUrl 以包含域。

loginUrl="https://A.site.com/Login.aspx?domain=B.site.com" 

然后处理重定向客户端