2

こんにちは ASP.net WebApi を作成しています。

現在、Thinktecture.IdentityModel.40を使用して基本認証サービスをセットアップしています。

ブラウザーで API URL を参照すると、ユーザー名とパスワードのダイアログがポップアップ表示され、資格情報を入力すると、正しいデータが表示されます。

JQuery を使用して JavaScript クライアントを作成し、API を認証してから関連データを返したいと思います。

これが私の試みです。ユーザー名とパスワードがサーバーに届いていないか、サーバーが取得しているものを理解していないようです。

ここに私のコードがあります:

  $(document).ready(function () {
        $.ajax({
            url: "http://localhost:21095/api/customers",
            beforeSend: function (xhr) {
                xhr.setRequestHeader("UserName", "user");
                xhr.setRequestHeader("Password", "pwd");
            },
            dataType: "jsonp",
            type: "GET",
            success: function (data) {
                alert(data);
                debugger
            }
        });
    });

Jquery を使用して API を認証するにはどうすればよいですか

4

1 に答える 1

1

リクエスト ヘッダーにユーザー名とパスワードをプレーン テキストとして指定するのは危険です。あなたのトラフィックを聞いている人は誰でもデータを傍受し、それを使用して害を及ぼすことができます. JavaScript を使用して認証する場合、ほとんどの API プロバイダーは 3 方向認証をサポートする認証プロトコルを使用します。最も顕著な例はOAuthです。

これらすべての目的は、ユーザー名とパスワード自体がアプリケーションに公開されるのではなく、ユーザーが自分に代わってデータにアクセスするためのアクセス許可をアプリケーションに付与することです。この許可はサーバーのドメイン内にあるため、資格情報の転送は必要ありません。これをサポートするには、WebApi に 3 方向認証プロトコルを実装する必要があります。

これに役立つ記事をいくつか紹介します:
http://codebetter.com/howarddierking/2011/10/11/oauth-2-0-in-web-api/

于 2012-06-22T09:06:47.647 に答える