windows - 如何清除 AuthzGetInformationFromContext API 使用的缓存?

标签 windows security active-directory

我有一个域,我在客户端计算机上使用 AuthzGetInformationFromContext API 来检索用户所属组的 sid。

它工作正常。但是,如果我将用户添加到某个组或将他从域 Controller 上的某个组中删除,此 API 仍会显示旧的组列表。在这种情况下,如果我等待 10 分钟或更长时间,它将显示更新的组列表。

我尝试在不同的计算机上执行此操作,发现该应用程序会在不同的时间显示更新的组列表。所以,它不是域 Controller 缓存。

此外,我的应用程序退出并重新启动。因此,它也不是应用程序级缓存。

所以,我相信有一些计算机级别的缓存用于组成员(通过此 API 检索)。

有谁知道如何以编程方式清除此缓存或更改某些设置以将这 10 分钟间隔缩短到更短的时间。

最佳答案

根据 this发布和Kerberos Authentication problems – Service Principal Name (SPN) issues - Part 1 ,您可以使用 klist purge 之类的工具清除 Kerberos TGT(以及您所有的服务票证)(该工具存在于 Windows 7 上)。您必须在用户登录的计算机上本地运行该工具。

您可以在Windows Platform SDK中找到Klist.exe的源码(我们的API是LsaCa​​llAuthenticationPackage)

C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\security\authorization\klist

关于windows - 如何清除 AuthzGetInformationFromContext API 使用的缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896799/

相关文章:

Windows:从 CMD 返回值以存储为变量

c++ - 有经验的程序员对 closesocket() 的关注

python - 我在python 3.5 Windows 10中安装 “icu”时遇到问题

javascript - JS漏洞程度

java - 不断收到 "java.security.AccessControlException access denied:"错误

c# - 检测 SSL 浏览器支持

c# - 在屏幕上放置半透明标记 (Windows XP)

java - 使用 OAuth2.0 或 Azure Active Directory 保护 REST API

powershell - 列出所有域计算机上的本地管理员组成员身份

powershell - 从电子表格更新 Active Directory