2010-02-15 103 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

相關問題