在不同子域上的不同应用程序上共享asp.net身份验证

时间:2011-01-19 15:46:03

标签: asp.net asp.net-mvc

我有2个申请。一个在asp.net webforms main.test.com上,它应提供身份验证,用户登录,我可以使用cookie在位于myApp.test.com的asp.net mvc应用程序上进行身份验证。

我想要做的就是能够访问cookie,这样我就可以使用FormsAuthentication获取存储在其中的userId。

他们使用microsoft提供的普通身份验证;

 <authentication mode="Forms">
     <forms domain="test.com" loginUrl="Default.aspx" protection="All" path="/" requireSSL="false" timeout="45" name=".ASPXAUTH" slidingExpiration="true" defaultUrl="Default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
 </authentication>

test.com上的任何子域都可以访问此cookie吗?

2 个答案:

答案 0 :(得分:2)

确保在每个应用程序中设置机器密钥,以便每个应用程序可以解密彼此的数据。 http://msdn.microsoft.com/en-us/library/ff649308.aspx

然后确保您已将Cookie名称和路径设置为相同。完成任务后,在任一应用程序中生成的身份验证票都应该跨越两者 http://msdn.microsoft.com/en-us/library/ff647070.aspx

编辑:忘了一点: 在您的Web配置中,还将httpCookies节点的domain属性设置为test.com

答案 1 :(得分:1)

在表单标记中添加

domain=".test.com"