我有两个站点在IIS 7的一个实例上运行。
A.site.com
B.site.com
这些网站使用表单身份验证,有一个用于登录网站A的表单。
因此,如果我试图访问网站B上的一个限制页面的URL
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"
然后处理重定向客户端