我有一个域,我在客户端计算机上使用AuthzGetInformationFromContext API来检索用户所属组的sid。
工作正常。但是,如果我将用户添加到某个组或将其从域控制器上的某个组中删除,则此API仍将显示旧的组列表。在这种情况下,如果我等待10分钟或更长时间,它将显示更新的组列表。
我尝试在不同的计算机上执行此操作,并看到应用程序将在不同的时间显示更新的组列表。所以,它不是域控制器缓存。
此外,我的应用程序退出并重新启动。因此,它也不是应用程序级缓存。
所以,我相信组成员资格有一些计算机级缓存(通过此API检索)。
是否有人知道如何以编程方式清除此缓存或更改某些设置以将此10分钟间隔缩短为更短的时间。
答案 0 :(得分:3)
Accordig to this post和Kerberos Authentication problems – Service Principal Name (SPN) issues - Part 1,您可以使用类似klist purge
(Windows 7上的工具)清除Kerberos TGT(以及所有服务票证)。您必须在用户登录的计算机上本地运行该工具。
您可以在Windows Platform SDK中找到Klist.exe的来源(我们的API是LsaCallAuthenticationPackage
)
C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\security\authorization\klist