HttpCaching - 每个客户端或每个令牌生成的ETag?

时间:2017-01-06 07:17:51

标签: rest asp.net-web-api oauth-2.0 http-caching cachecow

我在ASP.NET WEB API中使用oAuth2承载令牌身份验证和使用CacheCow进行HttpCaching。

实现已经完成,我正在验证代码并与缓存混淆。

缓存处理程序配置:

缓存配置代码如下;

        var connString = ConfigurationManager.ConnectionStrings["myContext"].ConnectionString;
        var sqlServerEtagStore = new InMemoryEntityTagStore();
        var cacheHandler = new CachingHandler(config, sqlServerEtagStore);
        config.MessageHandlers.Add(cacheHandler);

方案和工作步骤:

  1. 有一个名为'dataTable'的表,其中包含名为的字段 '电子邮件'。
  2. 我有身份表,所以用户在aspnetUser表中。
  3. 根据记录的用户电子邮件地址检索数据(其中     dataTable.email = current principle.Identity.Name)。
  4. dataTable包含10条记录。 user1的9条记录,只有1条记录 记录user2。
  5. 我使用'Postman Rest Client'来测试和记录2个用户。所以我有2个     记录用户的令牌。
  6. 澄清:

    1. 从配置来看,我认为sqlserver配置为持久化 存储。但是在使用InMemoryEntityTagStore之后。为什么这个。?所以 配置错了?什么在'InMemoryEntityTagStore'类?
    2. var sqlServerEtagStore = new InMemoryEntityTagStore();
      var cacheHandler = new CachingHandler(config, sqlServerEtagStore);
      
      1. 从场景中,我使用get request来获取带有user1令牌的数据。这里 我有etag生成的9条记录。然后我请求获取数据 user2令牌。在这里我也得到了相同的etag。它是否正确?所以eTag 每个客户生成?我的测试场景是什么?我认为每个资源都会生成单独的标记,因此基于用户的数据被缓存

0 个答案:

没有答案