2010-02-15 392 views

回答

4

我相信在使用LsaConnectUntrustedLsaRegisterLogonProcess之后,您需要使用KERB_PURGE_TKT_CACHE_REQUEST来致电LsaCallAuthenticationPackage。对不起没有具体的细节,但我没有我的代码... ...

+0

非常感谢! – rkellerm 2010-02-16 07:57:50

+0

嗨, 它很好用。 另外,有没有一种管理方式可以做到这一点? – rkellerm 2010-02-17 07:49:12

+0

用于托管代码的pInvokes包装。看看这些是否在pInvoke.Net,如果没有,那个网站有大量的信息。 – 2010-02-17 21:20:11

0

简单,笨方法:

system("kdestroy"); 

或者,如果你想更合法的,只是检查出kdestroy实施sourcekrb5_cc_destroy()似乎是相关的函数调用。

+0

非常感谢! – rkellerm 2010-02-16 07:59:24

1

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

1

有一个“管理C#”在https://github.com/ErtiEelmaa/StackOverflow/blob/master/GroupPolicyUtilities.cs

太长的方式复制使用的PInvoke清除Kerberos票据的例子/粘贴在这里。由于pInvoke中的结构是无效的(例如某人,虽然C++ LONG等于C#LONG和yada-yada),但花费了一些时间,然而,我测试了这一个,并且它对我很有用。

另外,我注意到,在Windows Server 2003 klist.c在PurgeTicket一些错误:

  • 不清理响应
  • 双击它检查相同的“结果”,而不是检查“RESULT”,然后“SUB-RESULT”
+0

谢谢 - 首先为参考(虽然它是PInvoke,所以不完全托管...),其次是MSFT的KList错误。我会检查我的代码并修复它们出现的错误。 – rkellerm 2014-09-15 07:33:52