4

ルートアプリケーションから仮想ディレクトリで実行されているサブアプリケーションにフォーム認証を共有しようとしています。サブサイトでの認証に問題があります。

親アプリケーションでは、すべてが期待どおりに機能します。

私は次の設定をしています:

親アプリケーション:

  • URLhttp://localhost:1336/
  • <forms loginUrl="~/account/sign-in" protection="All" timeout="30" name=".MYAPPLICATION" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="true" defaultUrl="/" />

仮想ディレクトリ:

  • URLhttp://localhost:1336/subsite
  • <forms loginUrl="/account/sign-in" protection="All" timeout="30" name=".MYAPPLICATION" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="true" defaultUrl="/" />

しようとするhttp://localhost:1336/subsiteと、次のフローが表示されます。

  • GET for- http://localhost:1336/subsite> 302 to / account / sign-in?ReturnUrl =%2fsubsite (looks ok)
  • ユーザー/パスワードを入力してください
  • POST to- http://localhost:1336/account/sign-in?ReturnUrl=%2fsubsite> 302 / subsite (認証が成功したように見えます)
  • GET for- http://localhost:1336/subsite> 302 to / account / sign-in?ReturnUrl =%2fsubsite (つまり、サブサイトは認証されているとは見なしません)

また、ブラウザのリストにCookieが表示されます(実際にはそこにあります)

サブサイトが親Cookieを共有するのを妨げる構成のどこが間違っていますか?

私はIISExpressでこれを実行しています

4

1 に答える 1

6

web.configファイルで、2つのドメインが検証キーと復号化キーを共有するように、プロジェクト間で共通のマシンキーを設定します。

例:

<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7" 
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
于 2013-03-24T20:50:57.860 に答える