1

我有一个 www.mysite.com 和几个子域的登录 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(它是同一个站点,但 url 是不同的),但不是在其余的的网站。

如何阻止 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吗?

4

2 回答 2

3

通常,所有子域都可以访问 example.com 上设置的 cookie。但是,如果您想将 cookie 限制为特定的子域,您应该手动设置您希望他们访问的每个域的域属性。

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

一些有价值的阅读,或者更有价值的阅读......(阅读:“限制 Cookie 域范围”部分),最后是“如何限制 ASP.NET 中特定子域的 cookie

于 2012-09-06T02:31:02.040 回答
0

答案是我真的不知道这里的登录过程发生了什么。

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

这几乎不是一个答案,但如果你像我一样愚蠢(对 ASP.Net 登录不够了解),并且必须处理 IE8/兼容性视图和这个登录问题......不知道在哪里寻找答案。

于 2012-09-24T01:58:08.353 回答