3

Win2008R2 IIS7 に 2 つの 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>

つまり、マシン キーは両方の Web サイトで同じであり、メンバーシップ/ロール プロバイダーは最初のサイトのアセンブリに存在し、2 番目のサイトで使用されます。

私が抱えている問題は、それが機能しないことです。フィドラーを使用して何が起こっているかを確認しましたが、認証 Cookie は 2 番目のサイトに送信されないため、常にログイン ページにリダイレクトされます。

明らかな何かが欠けていますか?

ありがとう、ニック

4

1 に答える 1

2

認証構成で間違ったドメインを設定していると思います-「domain.com」にする必要があります(これはタイプミスかもしれませんが、確認する価値があります)。

サブドメイン間での Cookie の共有については、次のブログをご覧ください。

http://www.codeguru.com/csharp/csharp/cs_internet/article.php/c19417/Sharing-Cookies-Across-Domains.htm

于 2012-06-15T08:19:40.270 に答える