表单身份验证中的跨应用程序重定向
我设计了 2 个 Web 应用程序,并使用表单身份验证在
Web A 上进行单点登录:包含一个 Login.aspx
页面
包含一个 OK.aspx
页面
Web B:访问 Ok.aspx
,它将重定向到 Web A 中的 Login.aspx
(效果很好)
但问题是当我成功登录时,我无法重定向到Web B 中的 Ok.aspx
FormsAuthentication.RedirectFromLoginPage(username,false);
它尝试重定向到 Web A 中的 Ok.aspx
而不是 Web B
我的
部分:
Web A :
<authentication mode="Forms">
<forms name="appNameAuth"
path="/"
loginUrl="login.aspx"
protection="All"
timeout="30"
enableCrossAppRedirects="true">
</forms>
</authentication>
Web B:
<authentication mode="Forms">
<forms name="appNameAuth"
path="/"
loginUrl="webAdomain/login.aspx"
protection="All"
timeout="30"
enableCrossAppRedirects="true" >
</forms>
</authentication>
有什么建议吗?
I have design 2 web apps and use Forms Authetication for single sign on
Web A: contains a Login.aspx
page
Web B: contains an OK.aspx
page
when access Ok.aspx
in Web B, it will redirect to Login.aspx
in web A (it work well)
But the problem is when I log on successfully, I can't redirect to Ok.aspx
in web B
FormsAuthentication.RedirectFromLoginPage(username,false);
It try to redirect to Ok.aspx
in web A not web B
my <authentication>
sections:
Web A:
<authentication mode="Forms">
<forms name="appNameAuth"
path="/"
loginUrl="login.aspx"
protection="All"
timeout="30"
enableCrossAppRedirects="true">
</forms>
</authentication>
Web B:
<authentication mode="Forms">
<forms name="appNameAuth"
path="/"
loginUrl="webAdomain/login.aspx"
protection="All"
timeout="30"
enableCrossAppRedirects="true" >
</forms>
</authentication>
Any suggestion?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过在每个应用程序的 web.config 文件中设置 machineKey 值以使它们匹配来实现此目的。
我所说的“匹配”是指从每个 web.config 中删除 IsolateApps 设置(因为这将完全按照它的说明进行操作,但这对您想要做的事情不利)。
接下来,您需要为解密密钥和验证密钥生成新值(与您选择的类型匹配的值...SHA1 等),并将它们复制到每个 web.configs 中
!一切都应该可以工作
以下是有关 machineKey 设置的 Microsoft 文章的链接,以供参考:http ://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
You can make this work by setting the machineKey values in each of your application's web.config files so that they match.
By 'match', I mean, remove the IsolateApps setting from each web.config (as this will do exactly what it says, and that's bad for what you're trying to do).
Next, you need to generate new values for the decryptionKey and validationKey (values that match the type you select...SHA1, etc), and copy them into each of your web.configs
voila! everything should work
Here's a link to a Microsoft article on the machineKey setting, for reference: http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx