0

ASP.NET WebApi を使用して RESTful Web サービスを作成しています。基本 HTTP 認証を使用するため、すべての着信要求が SSL を介して送信されるように要求しています。クライアントは要求ヘッダーに資格情報を含める責任があり、Web サービスは要求ごとにクライアントを認証します。

実際の認証では、データベース呼び出しを行う必要があります。データベースの結果 (ユーザー名とパスワード) をキャッシュして、短時間に発生するすべての着信要求に対してデータベース呼び出しを行う必要がないようにする方法はありますか?

そのため、リクエストが Web サービスに入ると、キャッシュ内でユーザー名とパスワードの組み合わせが検索されます。見つかった場合は、リクエストを処理します。見つからない場合は、データベースを呼び出して認証し、ユーザー名/パスワードをキャッシュに追加します。

4

1 に答える 1

2

私が使用すると考えることができる最も簡単なキャッシュは、System.Web.Cachingを使用することです。以下は、現在のキャッシュに値を追加し、それを取得して処理する非常に単純化されたバージョンです。このコードをそのまま使用することはお勧めしません。

// GET api/values/5
[HttpGet]
public string GetValue(int id)
{
    HttpContext.Current.Cache.Insert("2", "test1");

    var value = Convert.ToString(HttpContext.Current.Cache.Get(id.ToString()));

    return !string.IsNullOrEmpty(value) ? value : "nothing found";
}
于 2013-02-01T13:57:33.773 に答える