1

ASP.NET Web API を使用して RESTful Web サービスを構築しています。他のリクエストが正常に行われる前に「ログイン」リクエストが必要であるため、セッション認証を使用するのはあまりRESTfulではないことを読みました。さらに、クライアントは状態を維持する必要があります。

私の最初の設計は、クライアントが SSL 経由の基本的な HTTP 認証を使用して「ログイン」要求を呼び出すようにすることでした。次に、Web サービスは資格情報を検証し、セッション キーで応答します。その後、クライアントはそのセッション キーを使用して、後続のすべての要求に署名します。Web サービスは、これらの要求のいずれかを受信すると、セッション キーを検索し、同じ方法で要求に署名し、2 つの署名が等しいかどうかを確認します。

各リクエストでユーザー名/パスワードを送信することなく、このセッション認証を回避することは可能ですか? 資格情報の検証は、Web サービス内では行われません (ユーザーを維持する別のサーバーにルーティングされます)。各リクエストを検証する必要がある場合、パフォーマンスが影響を受けるのではないかと心配しています。

4

2 に答える 2

1

不可能です。状態を保存するか、リクエストごとに資格情報を取得します。2 番目のオプションは、HTTP API で必要なものです。

于 2012-12-20T15:54:56.600 に答える
0

「検証」の意味によって異なります

たとえば、ハッシュ (ユーザー名 + パスワード) をアプリケーションにキャッシュすることができます。また、後続のリクエストでは、キャッシュされたエントリがまだ存在するかどうかを確認します。このようにして、バックエンド ストアへの往復を節約できます。

于 2012-12-20T20:59:49.480 に答える