带子域的身份验证cookie

时间:2012-03-21 06:21:56

标签: asp.net authentication forms-authentication

我有一个asp.net网站http://www.site.com。此网络应用也在http://subdomain1.site.comhttp://subdomain2.site.com上运行。现在,我想以http://site.comhttp://www.site.com共享身份验证Cookie的方式设置身份验证Cookie,但不应由http://subdomain1.site.com共享。同样,http://www.domain1.site.comhttp://domain1.site.com应共享Cookie,但不应由http://domain2.site.comhttp://www.domain2.site.com共享。我如何使用asp.net处理这个问题?

2 个答案:

答案 0 :(得分:1)

默认情况下,Cookie与特定域相关联。例如,如果您的站点是www.contoso.com,则当用户请求来自该站点的任何页面时,您编写的cookie将被发送到服务器。 (这可能不包括具有特定路径值的cookie。)如果您的站点具有子域(例如contoso.com,sales.contoso.com和support.contoso.com),则可以将cookie与特定子域相关联。 / p>

Response.Cookies["domain"].Domain = "support.contoso.com";

通常,所有子域都将访问contoso.com上设置的cookie。但是如果你想限制cookie的子域,你应该为你想要访问的每个域手动设置域属性。

问候。

答案 1 :(得分:0)

我最终在this article

中描述了在不同域上使用不同的Cookie名称