2011-03-21 73 views
1

我有设计2 Web应用程序和使用形式Authetication对跨应用程序的表单认证重定向

的Web单点登录:包含Login.aspx

幅B:包含一个OK.aspx

时在网络B中访问Ok.aspx,它将重定向到网络A中的Login.aspx(它工作正常)

但问题是当我成功登录时,我无法重定向到Ok.aspx在幅面B

FormsAuthentication.RedirectFromLoginPage(username,false); 

它试图重定向到Ok.aspx在网上一个不幅面B

<authentication>部分:

网络答:

<authentication mode="Forms"> 
    <forms name="appNameAuth" 
      path="/" 
      loginUrl="login.aspx" 
      protection="All" 
      timeout="30" 
      enableCrossAppRedirects="true"> 
    </forms> 
</authentication> 

幅B:

<authentication mode="Forms"> 
    <forms name="appNameAuth" 
      path="/" 
      loginUrl="webAdomain/login.aspx" 
      protection="All" 
      timeout="30" 
      enableCrossAppRedirects="true" > 
    </forms> 
</authentication> 

任何建议?

+0

你可以张贴'<认证>'部分列出了应用程序? – Alex 2011-03-21 15:55:26

+0

Web A: trbaphong 2011-03-21 16:10:18

+0

Web B: trbaphong 2011-03-21 16:11:28

回答

0

您可以通过在每个应用程序的web.config文件中设置machineKey值来使其工作,以使它们匹配。

'match',我的意思是,从每个web.config中删除IsolateApps设置(因为这样做会完全按照它所说的做,而这对于你要做的事很糟糕)。

接下来,你需要生成的decryptionKey和validationKey的(符合你选择的类型...... SHA1,等等,价值观)的新值,并将其复制到每个web.configs的

瞧!一切都应该工作

这里是对的machineKey设置一个微软的文章的链接,以供参考:http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx