在缓存身份时,它应该是Singleton还是Scoped?

时间:2017-11-18 08:26:35

标签: c# caching asp.net-core asp.net-core-mvc asp.net-core-mvc-2.0

当缓存多种用户的身份信息时,特别是在单个缓存对象中可能发生密钥冲突的情况下,我通常会通过创建自定义缓存类来对缓存进行分区:

public BackEndUserCache: MemoryCache {
  ...
}
public FrontEndUserCache: MemoryCache {
  ...
}

我一直在考虑是否必须将依赖项注入Singleton或Scoped?

澄清:

1-我认为如果我将这些绑定到IMemoryCache作为Singleton,则可能存在安全漏洞,因为所有用户的凭据都将缓存在单个全局缓存列表中。

2-如果我以Scoped方式绑定它,将为每个连接创建缓存对象,并且将终止会话终止。但这在缓存时是否有意义?

0 个答案:

没有答案