0

MVC3を使用して作成したRESTWebサービスからデータを取得することで機能するHTML/JqueryMobileアプリを開発しました。現在、サービスはオープンであり、すべてが世界に順調です。ただし、サービスを保護するために何らかの認証を実装する必要があるため、ユーザーはモバイルアプリを介してサインアップします。私がやろうとしているのは、コントローラーまたはアクションの[Authorize]属性を使用して、ASP.NETメンバーシップなどを実装することです。私の質問は

  • jqueryを介して通信するクライアントにこの安全なサービスを呼び出すにはどうすればよいですか?
  • ASP.NETメンバーシップはこれを実現するための最良の方法ですか、それとも実装できる他の種類のセキュリティがありますか

いくつかのサンプルコードを含むチュートリアルまたはブログで十分であり、問​​題が解決したらすぐにここにソリューションを投稿することをお勧めします。

ありがとう、そしてあなたがこれについて持っているかもしれないどんな質問でも遠慮なく尋ねてください。

4

1 に答える 1

0

http基本認証を使用してユーザーを認証し、HTTPヘッダーから資格情報を取得するWebAPIのカスタムAuthorizeAttributeの作成について説明しているこのQ&Aをご覧くださいASP.NET Web API用のAuthorizeAttribute(System.Web.Http.AuthorizeAttribute)と、MVCコントローラー用のAuthorizeAttribute(System.Web.Mvc.AuthroizeAttribute)が異なることに注意してください。それらは異なる振る舞いをします。WebAPIへの呼び出しがログオンページにリダイレクトされることは望ましくありません。

クライアント側のコードは、RESTWebサービスを呼び出すために次のようになります。

   getAuthorizationHeader = function (username, password) {
    var up = $.base64.encode(username + ":" + password);
    authType = "Basic " + up;
    return authType;
   },


    $.ajax({
        url: _url,
        data: _data,
        type: _type,
        beforeSend: function (xhr) {
            xhr.setRequestHeader("Authorization", getAuthorizationHeader(username, password));

        },
        success: ajaxSuccessHandler,
        error: ajaxErrHandler
    });

beforeSendイベントは、HTTPヘッダーにクレデンシャルを配置するために使用されます。これを安全にするために、HTTPS/SSLを使用する必要があります。ユーザー名/パスワードをエンコードするだけでは十分なセキュリティではありません。

于 2012-11-13T13:56:21.403 に答える