我在 Win2008R2 IIS7 上有两个 ASP.NET 4.0 站点,例如 demo1.site.domain.com 和 demo2.site.domain.com,我想要单点登录。我已经四处搜索并像这样配置了两个站点的 web.config
<machineKey validationKey="ABCDEFG" decryptionKey="HIJKLMN" validation="SHA1" />
<roleManager defaultProvider="RoleName">
<providers>
<add name="RoleName" type="Assembly.RoleProvider, Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a1b2c3d4e5f6g7h8i9" />
</providers>
</roleManager>
<membership defaultProvider="MembershipName">
<providers>
<add name="MembershipName" type="Assembly.MembershipProvider, Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a1b2c3d4e5f6g7h8i9" />
</providers>
</membership>
<authentication mode="Forms">
<forms
loginUrl="http://demo1.site.domain.com/login.aspx"
name=".ASPXAUTH"
domain="domain.com"
protection="All"
path="/"
/>
</authentication>
<authorization>
<deny users="?" />
</authorization>
换句话说,机器密钥在两个网站上是相同的,并且成员资格/角色提供者存在于第一个站点的集合中并由第二个站点使用。
我遇到的问题是它不起作用。我使用 fiddler 来查看发生了什么,并且 auth cookie 永远不会发送到第二个站点,因此它总是重定向到登录页面。
我错过了一些明显的东西吗?
谢谢,尼克