我知道可以使用设置在多个子域之间共享 cookie
<forms
name=".ASPXAUTH"
loginUrl="Login/"
protection="Validation"
timeout="120"
path="/"
domain=".mydomain.com"/>
在 Web.config 中。但是如何在本地机器上复制同样的东西。我在笔记本电脑上使用 Windows 7 和 IIS 7。所以我的实际网站 users.mysite.com 有网站 localhost.users/ 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
之间成功共享身份验证 cookie。
啊,不要忘记在您的自动构建过程中加入一个步骤,在生产环境中发布之前将您的 web.config 值转换为正确的根域。
关于c# - 本地 IIS 上跨子域的表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278015/