4

Azure Web サイトに 2 つの Web サイトがあり、CNAME を使用してそれらを独自のドメイン名で使用しています。

2 つのサイトを site1.example.com と site2.example.com と呼びましょう。

ASP.NET MVC 4 と SimpleMembership を使用しています。ユーザーが site1.example.com にログインできるようにし、そのログイン状態が site2.example.com によって受け入れられるようにします。

これまでに行ったことは次のとおりです。

  • site1 と site2 の両方が同じメンバーシップ データベースを指しています (接続文字列は web.config で両方に同じように設定され、InitializeSimpleMembershipAttribute はその接続文字列を参照するように設定されています)。
  • Cookie ドメインを .example.com に設定しました (web.config の system.web authentication セクションで)
  • system.web の構成で machineKey を両方のサイトで同じものに手動で設定しました

ただし、site1 にログインすると、site2 にはログインしません。.ASPXAUTH Cookie が .example.com で正しく設定されていることがわかります。したがって、両方に表示されます。

それで、私は何が欠けていますか?

4

1 に答える 1

0

ログインにAJAXリクエストを使用している場合(Web API経由など)、含めてみてください

xhrFields: { withCredentials: true }

何かのようなもの

$.ajax({ method: 'POST',
        url: 'yourloginurl.com/api/login',
        xhrFields: { withCredentials: true }, 
        success: function (data) { ... } });

httpCookieにドメインを設定した後。

私はこの解決策を見つけるために1日を費やし、これが私の問題を解決します。

于 2014-12-18T12:01:29.753 に答える