2

webapi2.1 の認証に関するいくつかのテストを行っていますが、それがどのように機能するのか少しわかりません。

[Authorize] が設定された webapi コントローラーがあるため、ベアラー トークンなしで呼び出そうとすると、期待どおり 401 が返されます。

ステップ 1 - 新しいトークンを生成し、それをリクエストのヘッダーに追加すると、期待される結果が返されます。ステップ 2 同じアカウントの詳細で新しいトークンを生成します。古いトークンまたは新しいトークンを使用してデータにアクセスできます。

最初のトークンがまだ機能するのはなぜですか? これは古いトークンを使用して 401 を返すはずだと思いましたか?

4

1 に答える 1

2

無記名トークンは、映画館や美術館のチケットに似ていると考えてください。現金またはクレジット カード (ユーザー名/パスワードなどの資格情報) を使用してカウンター (認証サーバー) で支払うと、チケット (認証サーバーからのトークン) が与えられます。このチケットを使用して、以前はアクセスできなかった安全な環境 (Web ページまたはメソッド) にアクセスできるようになりました。

自分で別のチケットを購入しても、以前に購入したチケットは無効になりません。これで、本質的に同じことを行う 2 つのチケットができました。それはあなたにもっと費用がかかりました。この場合のコストは、資格情報を照合するためのデータベースへの別のヒットです。

それが理にかなっていることを願っています。

于 2015-04-24T10:09:39.847 に答える