2

我设计了 2 个网络应用程序并使用表单身份验证进行单点登录

Web A:包含一个Login.aspx页面

Web B:包含一个OK.aspx页面

在 Web B 中访问时Ok.aspx,它将重定向到Login.aspxWeb A 中(效果很好)

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

FormsAuthentication.RedirectFromLoginPage(username,false);

它尝试重定向到Ok.aspxweb A 而不是 web 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>

有什么建议吗?

4

1 回答 1

1

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

通过“匹配”,我的意思是从每个 web.config 中删除 IsolateApps 设置(因为这将完全按照它所说的那样做,这对你想要做的事情不利)。

接下来,您需要为 decryptionKey 和 validationKey 生成新值(与您选择的类型匹配的值...SHA1 等),并将它们复制到您的每个 web.configs

瞧!一切都应该工作

这是关于 machineKey 设置的 Microsoft 文章的链接,供参考:http: //msdn.microsoft.com/en-us/library/w8h3skw9.aspx

于 2011-07-26T00:59:47.147 回答