Asp.net 使用表单身份验证,如何处理重定向到其他子域

Asp.net 使用表单身份验证,如何处理重定向到其他子域,asp.net,subdomain,formsauthentication,Asp.net,Subdomain,Formsauthentication,我有多个子域使用表单身份验证。一旦用户登录,他们就可以进入任何其他子域 这是我的问题:如果我转到reporting.example.com/reporting.aspx,我会被重定向到login.example.com/login.aspx。输入凭据后,我会被重定向到login.example.com/reporting.aspx,但它不存在 我有一个工作,但我想知道是否有一个更干净的方法。我目前所做的是将reporting.example.com的forms元素的loginUrl属性设置为lo

我有多个子域使用表单身份验证。一旦用户登录,他们就可以进入任何其他子域

这是我的问题:如果我转到reporting.example.com/reporting.aspx,我会被重定向到login.example.com/login.aspx。输入凭据后,我会被重定向到login.example.com/reporting.aspx,但它不存在

我有一个工作,但我想知道是否有一个更干净的方法。我目前所做的是将reporting.example.com的forms元素的loginUrl属性设置为login.example.com/login.aspx?domain=reporting.example.com

然后,在login.aspx代码中,在我验证并设置cookie之后,我查看是否有一个域变量传入URL。如果是这样的话,我会在返回URL之前加上域,然后做一个简单的重定向


这很有效,但感觉很糟糕。有什么想法吗?

返回url是否包含完整的url?如果是这样的话,它应该会像预期的那样工作


确保在web.config中设置为true。

这几乎是最好的方法。否则,您唯一实用的选择就是使用referer,它们的可靠性约为10%。不幸的是,returnUrl是相对于调用应用程序的主目录的。在我的示例中,returnUrl是/reporting.aspx。看起来这段代码将把完整的URL放在重定向URL中: