2011-08-24 117 views
2

此问题对于大多数人来说可能很奇怪,但这是一个非常简单的问题。我有越来越多的应用程序需要有SSO解决方案。我们成功地使用machinekey做了所有事情,但现在需要创建一个中央登录应用程序(基本上是登录表单和密码检索框),这是登录页面,用户尝试输入其中一个应用程序而无需首先进行身份验证。单点登录(SSO)适用于具有一个登录应用程序的asp.net 4.0应用程序

的问题是,如果我把在应用程序的web.config中的绝对loginurl(例如,而不是〜/ login.aspx的我把http://login.myapp.com/的),我成功地重定向,但传递RETURNURL不是绝对的,而是相对的,所以我无法回到“调用”应用程序。

任何想法如何解决这个问题?

感谢, 马尔科

+0

我们不得不看到正在执行重定向开始解决它的代码。 –

+0

Hi @Chris。下面是两个应用程序的web.config中: 登录应用WEB.CONFIG '<认证模式= “表单”> <形式loginUrl = “Default.aspx的” enableCrossAppRedirects = “真” 名称=” ASPXFORMSAUTH “ 路径=”/ “ 域=”。mydomain.me” 超时= “30”/> ' 应用WEB.CONFIG '<认证模式= “表单”> <形式loginUrl =“http://login.mydomain.me/” enableCrossAppRedirects =“true” name =“。ASPXFORMSAUTH” path = “/” domain =“。mydomain.me” timeout =“30”/> ' – Marconline

回答

0

在你的web.config尝试设置enableCrossAppRedirects属性为true;

<configuration> 
    <system.web> 
     <authentication mode="Forms"> 
      <forms .... enableCrossAppRedirects = "true" ....> 
      </forms> 
     </authentication> 
    </system.web> 
</configuration> 

这不打开你不过重定向攻击......

+0

嗨@blowdart并感谢您的回复。我已经尝试使用enableCrossAppRedirects,但似乎没有改变。 ReturnUrl总是相同的(相对的,不是绝对的)。 – Marconline