【发布时间】:2016-07-27 12:08:27
【问题描述】:
我在 example.com 上有一个 DNN 站点,在 subdomain.example.com 上有一个 MVC 站点。我根据这篇文章设置了MembershipProvider 和RoleProvider:SharePoint-Forms-Based-Authentication-Using-DotNet。现在我想在两个站点之间共享 auth cookie。我已经在两个web.config 文件中设置了域密钥,例如domain=".example.com"。 Fiddler 表示,在向任何站点发出请求时都会使用相同的 cookie。并且有以下效果:当我登录其中一个站点时,我正在从另一个站点注销。我会错过什么?
下面是MVC网站web.config的一部分:
<machineKey
validationKey="DEE8F9D31F46D663FA0BCF9A6A9701B0796777C5"
decryptionKey="E75FBCF55F6BB0B2A352036B965725FD739B2EB21B790659"
decryption="3DES"
validation="SHA1" />
<authentication mode="Forms">
<forms
name=".DOTNETNUKE"
protection="All"
timeout="60"
cookieless="UseCookies"
loginUrl="~/Account/Login"
domain=".example.com"
path="/" />
</authentication>
<httpCookies httpOnlyCookies="true" requireSSL="false" domain=".example.com" />
<!-- Configure the Sql Membership Provider -->
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="DnnSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="0"
requiresUniqueEmail="false"
passwordFormat="Hashed"
applicationName="DotNetNuke" />
</providers>
</membership>
<!-- Configure the Sql Role Provider -->
<roleManager enabled="true" defaultProvider="SqlRoleProvider">
<providers>
<clear/>
<add
name="SqlRoleProvider"
connectionStringName="DnnSqlServer"
applicationName="DotNetNuke"
type="System.Web.Security.SqlRoleProvider,System.Web,
Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
【问题讨论】:
-
终于在stackoverflow页面上找到了解决方案:http://stackoverflow.com/a/21087932/4703971
标签: asp.net-mvc cookies forms-authentication dotnetnuke