【问题标题】:How to clear the cache which is used by AuthzGetInformationFromContext API?如何清除 AuthzGetInformationFromContext API 使用的缓存?
【发布时间】:2011-10-25 22:49:25
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 您确定您看到的不仅仅是通常的复制延迟吗?不同的计算机可能正在查看不同的域控制器。
  • 我使用正在使用的 API 编辑我的答案。
  • 没有。这不是复制延迟。我的测试环境中只有一个 DC。

标签: windows security active-directory


【解决方案1】:

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

可以在Windows Platform SDK中找到Klist.exe的源码(我们的API是LsaCallAuthenticationPackage

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

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多