【问题标题】:Cache database results in WebAPI authentication缓存数据库导致 WebAPI 身份验证
【发布时间】:2013-01-16 04:04:03
【问题描述】:

我正在使用 ASP.NET WebApi 创建一个 RESTful Web 服务。我要求所有传入请求都通过 SSL,因为我将使用基本 HTTP 身份验证。客户端负责在请求标头中包含凭据,Web 服务将对每个请求的客户端进行身份验证。

实际的身份验证需要进行数据库调用。有没有办法缓存数据库结果(用户名和密码),这样我就不必为短时间内发生的每个传入请求进行数据库调用?

因此,当请求进入时,Web 服务将在缓存中查找用户名/密码组合。如果找到,它将处理请求。如果没有找到,它将调用数据库进行身份验证,然后将用户名/密码添加到缓存中。

【问题讨论】:

    标签: asp.net authentication caching asp.net-web-api


    【解决方案1】:

    我能想到的最简单的缓存是使用 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";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-12
      • 2014-04-05
      • 2019-12-13
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      相关资源
      最近更新 更多