在本地IIS上跨子域进行表单身份validation

我知道可以使用该设置在多个子域中共享cookie

 

在Web.config中。 但是如何在本地机器上复制相同的东西。 我在笔记本电脑上使用Windows 7和IIS 7。 所以我有站点localhost.users /为我的实际站点users.mysite.com localhost.host/为host.mysite.com和类似。

localhost.userslocalhost.host是跨域的。 Cookie不能跨域共享。

您可以像这样配置它,以便子域不同但根域保持不变:

  • users.localhost
  • host.localhost

现在将web.config中的cookie域设置为localhost

 domain=".localhost" 

并在您的c:\Windows\System32\drivers\etc\hosts文件中添加以下2个条目:

 127.0.0.1 users.localhost 127.0.0.1 host.localhost 

现在,您将能够在users.localhosthost.localhost之间成功共享身份validationcookie。

啊,不要忘记在自动构建过程中加入一步,将您的web.config值转换为正确的根域,然后再在生产中发货。

这是对在Framework 4.5中运行并尝试与框架4及更低版本共享令牌的任何人的提醒,请注意这将导致您不会在任何4个及更低版本的应用程序上收到身份validationcookie。 即:如果在你的web.config你有:

  

您可以通过删除targetFramework="4.5"属性来使其工作,但我不知道这样做是否有任何副作用: