当缓存多种用户的身份信息时,特别是在单个缓存对象中可能发生密钥冲突的情况下,我通常会通过创建自定义缓存类来对缓存进行分区:
public BackEndUserCache: MemoryCache {
...
}
public FrontEndUserCache: MemoryCache {
...
}
我一直在考虑是否必须将依赖项注入Singleton或Scoped?
澄清:
1-我认为如果我将这些绑定到IMemoryCache
作为Singleton,则可能存在安全漏洞,因为所有用户的凭据都将缓存在单个全局缓存列表中。
2-如果我以Scoped方式绑定它,将为每个连接创建缓存对象,并且将终止会话终止。但这在缓存时是否有意义?