私は次の構造を持っています
www.website.com --> ASP.NET 4.0 Web サイト
www.website.com/blog --> NET 4.0、Web アプリケーション
どちらも、同じ SQL データベースに対してフォーム認証を行い、フレームワークの ASP.NET メンバーシップとロールを使用します。各部分に問題なくログインできます (同じユーザー/パスワード) が、認証は引き継がれません。つまり、ログインして へ/
のリンクをクリックすると/blog/
、/blog/
匿名であると見なされ、再度ログインするように求められます。基本はやりました
すなわち
<authentication mode="Forms">
サイトとアプリの web.configs の両方で同一- 同一
<machineKey>
のセクション (はい、同一のvalidationKeyとdecryptionKey)
次に、生成された Cookie を調べたところ、Web サイトと Web アプリケーションが異なる Cookie で動作しているように見えることがわかりました。
website.com/blog によって作成された Cookie
- .ASPXFORMSAUTH-27604f05-86ad-47ef-9e05-950bb762570c
- .ASPXROLES
website.com によって作成された Cookie
- .ASPXFORMSAUTH
これが問題だと思いますが、<authentication>
次のような同一のセクションがあるにもかかわらず表示されます
<authentication mode="Forms">
<forms timeout="30" slidingExpiration="true" name=".ASPXFORMSAUTH" enableCrossAppRedirects="true" protection="All" cookieless="UseCookies"/>
</authentication>
フォーム認証によるシングル サインオン や http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspxなどの他の投稿をいくつか読み ました。
他にも思い出せない記事がいくつかありました。私はそれらを(すべて?)見てきましたが、まだ立ち往生しています。必要に応じて、さらに多くのデバッグ データを提供できます。
誰かが持っているかもしれないヒントを本当に感謝します! これで壁にぶち当たると思います!