8

有谁知道如何清除本地计算机上的 Kerberos 票证缓存 - 使用托管 \unmanaegd 代码?

提前致谢!

4

4 回答 4

5

我相信您需要在使用LsaConnectUntrustedLsaRegisterLogonProcess之后使用KERB_PURGE_TKT_CACHE_REQUEST调用LsaCa ​​llAuthenticationPackage。抱歉没有具体细节,但我没有我的代码......

于 2010-02-16T04:51:23.067 回答
2

最简单的方法是拿微软的KList的源代码(包含在平台SDK\Samples中),然后像他们一样做...

于 2010-03-23T09:38:31.470 回答
2

在https://github.com/ErtiEelmaa/StackOverflow/blob/master/GroupPolicyUtilities.cs有一个使用 pInvoke 清除 kerberos 票证的“托管 C#”示例

太长了,无法在此处复制/粘贴。由于 pInvoke 中的结构无效(例如,有人虽然 C++ LONG 等于 C# LONG 和 yada-yada),所以花了一些时间,但是,我已经测试了这个,它对我有用。

另外,我注意到 Windows server 2003 klist.c在 PurgeTicket 中几乎没有错误:

  • 它不会清理响应
  • 它仔细检查相同的“RESULT”,而不是检查“RESULT”然后“SUB-RESULT”
于 2014-09-14T16:07:13.263 回答
0

简单,愚蠢的方法:

system("kdestroy");

或者,如果您想更合法,只需查看实现的源代码kdestroykrb5_cc_destroy()似乎是相关的函数调用。

于 2010-02-15T16:32:25.950 回答