1

関連する質問:

MVC FormsAuthentication を使用した .NET Web API での認証

WebAPI ソリューションのドメインの外部にあるクライアント アプリケーションがあります (現在、localhost に 2 つの異なるソリューション - 1 つはポート X、もう 1 つはポート Y)。次のようなコードでフォーム認証を使用しようとしています:

if (WebSecurity.Login(model.UserName, model.Password, persistCookie: true))
            {
                var response = Request.CreateResponse(HttpStatusCode.OK, "logged in successfully");
                return response;
            }

POSTMan のようなものではこれは機能しますが、クライアント/JS アプリケーションを使用すると、Cookie が保存されないため、ユーザーが真に認証されることはありません。_RequestVerificationToken は表示されますが、.ASPXAUTH トークンは表示されません。

このアプリケーションの要件は、WebSecurity を使用して Cookie を設定し、フォーム認証を使用することです。クライアントとサーバーが異なるドメインにある場合、これは可能ですか?

この問題をより明確にするために提供できるものが他にある場合は、お知らせください。

4

1 に答える 1

2

CORSを使用していると仮定します。デフォルトでは、Cookie は CORS で有効になっていません。jQueryでは、設定する必要があります

xhrFields: {
       withCredentials: true
}

また、サーバーは応答ヘッダーを送信する必要がありますAccess-Control-Allow-Credentials: true

于 2013-07-06T19:43:27.520 に答える