2012-09-06 92 views
1

我有www.mysite.com和几个子域名登录cookie,如:IE共享登录cookie - 不需要

  • www.one.mysite.com
  • www.two .mysite.com
  • www.three.mysite.com

在IE只(Firefox没有做到这一点),如果我在mysite.com登录,它看起来好像这个Cookie在所有子域共享(登录到所有网站)。如果我使用子域名(one.mysite.com)登录,则Cookie不共享(仅记录到one.mysite.com)。

www.mysite.com和www.one.mysite.com共享相同的web.config文件,我不介意他们共享一个登录cookie(它是与不同的网址是同一个网站都是),但没有跨越其他的网站。

如何阻止IE将cookie分享给所有或部分子域?

我可以使用web.config文件来做到这一点吗?


更新:

我使用会员和角色管理器在我的web.config文件。在上面的问题,我也没有设置

<authentication mode="Forms"> <forms domain="... 

据我所看到的,

<authentication mode="Forms"> <forms domain="mysite.com" ... 

可以允许只有一个域(www.mysite.com),或所有子域(.mysite。 COM)。我需要一种方法来允许www.mysite.com和一个子域名。这可能吗?

我可以告诉其他子域名不接受.mysite.com cookie吗?

+0

我的直觉说,也许你检查/测试错误。尝试在Firefox/IE中删除Cookie,然后重试。但也是什么版本的IE?6,7,8是完全不同的(或者我听到) – 2012-09-06 02:27:39

+0

在IE 8和9中都有相同的问题进行测试。以几种方式测试几次,问题仍然如上所述持续存在。 – user1314350

回答

3

通常,在example.com上设置的cookie将被所有子域访问。但是,如果您想将Cookie限制为特定的子域,则应手动设置您希望其访问的每个域的域属性。

Response.Cookies["domain"].Domain = "www.example.com"; 

Some valuable reading,或者More valuable reading...(读:“限制Cookie域范围”部分),最后“How to limit cookie for a particular subdomain in ASP.NET

+0

我正在使用ASP.NET角色管理和成员身份进行登录,如果在我的web.config文件中设置了所有cookie,我如何访问cookie? – user1314350

+0

你有没有试过web.config设置? ' ' –

+0

可以涵盖mysite.com和one.mysite.com吗? – user1314350

0

答案是,我真的不知道是怎么回事的登录程序。

与我合作的另一个人正在解决问题。显然它与机器密钥有关,除了主要网站(www.mysite.com)之外,所有其他子域网站(two.mysite.com,three.mysite.com)都需要对其进行更改。

这不是一个答案,但是如果你像我一样愚蠢(不太了解ASP.Net登录),并且必须处理IE8 /兼容性视图和这个登录问题......那么希望它将帮助不知道在哪里寻找答案的人。