我经常向 AD 查询信息(例如获取 Windows 主体、安全组等),并且想知道缓存此类信息的好方法。例如:
var pc = new PrincipalContext(ContextType.Domain);
var up = UserPrincipal.FindByIdentity(pc, User.Identity.Name);
我希望完成的是FindByIdentity()
或类似的事情来决定“嘿,我最近运行了这个查询,我们不要再打扰 AD 了”并从本地缓存中获取它?
问题 1: DirectoryServices 或任何相关库是否提供此类机制?
问题 2:其次,这些查询是在 Http 请求上触发的,每秒可能有数百个。如果我必须编写自己的缓存机制,正如@HillBilly.Developer 下面建议的那样,缓存存储的首选范围是什么?