1

ASP.NET MVC3WebサービスでjQueryとFormsAuthenticationを使用して認証を実装しようとしています。アイデアは、フォーム認証を実行してCookieまたはトークンを返すWebサービスにjQuery AJAX投稿を行い、データアクセス呼び出しごとに、Webアプリケーション(jQuery)がそのCookieまたはトークンを使用することです。

私が持っているもの-

ASP.NET WebサービスへのAJAX呼び出しを設定し、Webサービスを次のように設定しました。

public ActionResult Login(string userName, string password, bool rememberMe, string returnUrl)
{

    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(userName, password))
        {
            return Json(FormsAuthentication.GetAuthCookie(userName, rememberMe), JsonRequestBehavior.AllowGet);

        }
        else
        {
            return Json("Authentication Failed", JsonRequestBehavior.AllowGet);
        }
    }
}

これは、正しいクレデンシャルを使用してAJAX呼び出しを行うと、JSONでCookieが返され、そうでない場合は、認証に失敗した文字列が返されるように機能しています。

わからないこと-JSONCookieを受け取ったらどうするか。これをHTML5ローカルストレージに保存することはできますが、データアクセス呼び出しで返送する部分(または全体)、およびそれを解釈してWebサービス側でCookieを確認する方法がわかりません。Cookieを使用するべきではない場合、ある種のトークンを生成して使用する方法はありますか?

4

1 に答える 1

1

偶然出くわした他の人のために、これが私がそれを解決した方法です:

JSON経由でCookieを送り返す必要がないことに気づきました。を使用するFormsAuthentication.SetAuthCookieと、HTTPのみのCookieが設定され、AJAX呼び出しで自動的に送信されます。このように、サーバーはAuth cookieを担当する唯一のサーバーであり、で認証を検証できRequest.IsValidatedます。

于 2012-07-06T17:05:27.703 に答える