我正在尝试在WebAPI服务上实现缓存。目标是将用户数据存储在绑定到应与每个请求一起传递的令牌的缓存对象中,而不是每个请求都发送用户数据(UI层独立于其自己的应用程序池中的WebAPI层运行)。我似乎无法找到有效的实现。我有一个静态助手类TokenHandler
,由控制器调用来处理令牌。我插入对象的代码是:
public static string insertToken(AccessToken token)
{
Cache cache = new Cache();
string key = string.Empty;
do
{
key = generateTokenKey();
} while (cache.Get(key) != null);
token.KeyValue = key;
cache.Insert(key, token, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(20));
return key;
}
我从一开始就知道这不正确,因为我们不应该使用Cache()
构造函数,每the MSDN entry on Cache但我找不到任何其他实际编译的东西。我发现的唯一其他解决方案涉及Page.Cache
,我没有从页面缓存。我想尽可能避免数据库调用。我知道它可能是一种愚蠢的 - 我很想丢失。