ASP.NET表单身份验证跨应用重定向不起作用
我有两个Web应用程序。
A.Test.Com和B.Test.Com
A.Test.Com有一个登录页面A.Test.Com/Login.aspx。 B.Test.Com没有登录页面。
B.Test.Com有形式loginUrl = A.Test.Com/Login.aspx和B.Test.Com拒绝用户=?
两个A & B具有完全相同的machineKey并且enableCrossAppRedirects = true。
我跟着这篇文章,以获得从B发送正确RETURNURL至A.
http://blogs.freshlogicstudios.com/Posts/View.aspx?Id=cb739183-6a0b-46bc-9179-22aed8e60433ASP.NET表单身份验证跨应用重定向不起作用
当我去B.Test.Com,我送送http://A.Test.Com/Login.aspx?ReturnUrl=http://B.Test.Com
这是正确的。然后当我使用登录页面时,它调用FormsAuthentication.RedirectFromLoginPage(user,false)。
这永远不会重定向到B.Test.Com。它只停留在登录页面上。
我也试过了Response.Redirect(FormsAuthentication.GetRedirectUrl(user,false),true),但这不起作用。
我已阅读的其他文章。
http://w3facility.info/question/forms-authentication-redirect-back-to-original-domain/
http://weblogs.asp.net/dfindley/fix-returnurl-when-sharing-forms-authentication-with-multiple-web-applications
http://forums.asp.net/t/1652342.aspx?+ReturnUrl+and+subdomain+for+single+sign+on
http://forums.ext.net/showthread.php?19349-CLOSED-Forms-authentication-RedirectFromLoginPage-not-working
任何帮助将非常感激。
编辑 -
所以我看到发生了什么,但我仍然不知道如何解决它。
A.Test.Com和B.Test.Com都需要认证。
当我去B.Test.Com时,我被重定向到A.Test.Com/Login.aspx,因为我没有通过身份验证。
一旦我点击登录按钮,我被重定向到B.Test.Com,但B站点认为我没有被认证,因此它将我重定向回A.Test.Com/Login.aspx。
嗯,我得到它的工作。
这真是一个2部分问题。
首先,我必须编辑B.Test.Com global.asax并添加代码以将整个域附加到ReturnUrl。
http://blogs.freshlogicstudios.com/Posts/View.aspx?Id=cb739183-6a0b-46bc-9179-22aed8e60433
其次,我必须通过将domain = Test.Com添加到窗体部分来编辑表单身份验证的两个站点的web.config。
http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx
ADDED链接已经更新:
http://www.cnblogs.com/dushouke/archive/2009/03/25/Forms-Authentication-Absolute-ReturnUrl.html
您链接到文章下跌 – Dimitar 2015-02-04 07:39:54
真的,一个负的,因为一个破碎的链接?我无法控制外部链接,也不应该将整篇文章复制到我的答案中。这个计算器链接了同样的文章...你会给他们负面的吗? http://stackoverflow.com/questions/7584114/how-to-force-asp-net-forms-authentication-to-use-absolute-url-for-returnurl-para – goroth 2015-02-06 15:25:35