example.com
にDNNサイトがあり、subdomain.example.com
にMVCサイトがあります。この記事ではMembershipProvider
とRoleProvider
を設定しました:SharePoint-Forms-Based-Authentication-Using-DotNet今、私は2つのサイト間で認証クッキーを共有したいと思います。私はdomain=".example.com"
のようなweb.config
ファイルにドメインキーを設定しました。 Fiddlerは、いずれかのサイトにリクエストするときに同じCookieが使用されると述べています。そして、次のような効果があります。サイトの1つにログインすると、別のサイトからログオフされています。私は何を逃したでしょうか?以下はDNNサイトとASP.NETサイトの間で認証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](http://stackoverflow.com/a/21087932/4703971) – niebohr