Asp.net 表单身份验证中的跨应用重定向
我设计了2个web应用程序,并使用表单验证进行单点登录 Web A:包含一个Asp.net 表单身份验证中的跨应用重定向,asp.net,redirect,forms-authentication,cross-application,Asp.net,Redirect,Forms Authentication,Cross Application,我设计了2个web应用程序,并使用表单验证进行单点登录 Web A:包含一个Login.aspx页面 Web B:包含一个OK.aspx页面 当在Web B中访问Ok.aspx时,它将重定向到Web A中的Login.aspx(工作正常) 但问题是,当我成功登录时,我无法重定向到web B中的Ok.aspx FormsAuthentication.RedirectFromLoginPage(username,false); 它尝试重定向到web A而不是web B中的Ok.aspx 我的部分:
Login.aspx
页面
Web B:包含一个OK.aspx
页面
当在Web B中访问Ok.aspx
时,它将重定向到Web A中的Login.aspx
(工作正常)
但问题是,当我成功登录时,我无法重定向到web B中的Ok.aspx
FormsAuthentication.RedirectFromLoginPage(username,false);
它尝试重定向到web A而不是web B中的Ok.aspx
我的
部分:
网站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>
有什么建议吗?您可以通过在应用程序的每个web.config文件中设置machineKey值,使其匹配来实现这一点 我所说的“匹配”,是指从每个web.config中删除IsolateApps设置(因为这会完全按照它所说的做,这对您正在尝试做的事情是有害的) 接下来,您需要为decryptionKey和validationKey生成新值(与您选择的类型相匹配的值…SHA1等),并将它们复制到每个web.configs中 瞧!一切都应该正常
这里有一个指向Microsoft关于machineKey设置的文章的链接,供参考:您可以发布两个应用程序的
部分吗?Web a:Web B:这些Web应用程序是否位于同一服务器上并在同一IIS应用程序池中运行?(我知道你在第二个例子中有“webAdomain”,这就是为什么我要问这个问题)@Raelshark:你说得对。我在同一台服务器上运行,在同一个IIS应用程序池中运行。WebAdomain大约是10.22.33.22:8033。WebB中的loginUrl类似于https:10.22.33.44:5555/Login.aspx。因为我希望未经身份验证的用户将重定向到Web A中的登录页面