0

我正在使用 ASP.NET WebApi 创建一个 RESTful Web 服务。我要求所有传入请求都通过 SSL,因为我将使用基本 HTTP 身份验证。客户端负责在请求标头中包含凭据,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 回答