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"
然后处理重定向客户端
我在一个 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"
然后处理重定向客户端