在本地IIS上跨子域进行表单身份validation
我知道可以使用该设置在多个子域中共享cookie
在Web.config中。 但是如何在本地机器上复制相同的东西。 我在笔记本电脑上使用Windows 7和IIS 7。 所以我有站点localhost.users /为我的实际站点users.mysite.com localhost.host/为host.mysite.com和类似。
localhost.users
和localhost.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.localhost
和host.localhost
之间成功共享身份validationcookie。
啊,不要忘记在自动构建过程中加入一步,将您的web.config值转换为正确的根域,然后再在生产中发货。
这是对在Framework 4.5中运行并尝试与框架4及更低版本共享令牌的任何人的提醒,请注意这将导致您不会在任何4个及更低版本的应用程序上收到身份validationcookie。 即:如果在你的web.config
你有:
您可以通过删除targetFramework="4.5"
属性来使其工作,但我不知道这样做是否有任何副作用: