Как программно очистить кеш билетов Kerberos - PullRequest
8 голосов
/ 15 февраля 2010

Кто-нибудь знает, как очистить кеш билетов Kerberos на локальном компьютере - используя управляемый \ unmanaegd код?

Заранее спасибо!

Ответы [ 4 ]

5 голосов
/ 16 февраля 2010
2 голосов
/ 14 сентября 2014

Существует "управляемый C #" пример очистки билетов Kerberos с использованием pInvoke на https://github.com/ErtiEelmaa/StackOverflow/blob/master/GroupPolicyUtilities.cs

Слишком долго копировать / вставлять здесь. Прошло некоторое время, так как структуры в pInvoke были недействительными (например, кто-то, хотя C ++ LONG равен C # LONG и yada-yada), однако я протестировал этот, и он работал для меня.

Также я заметил, что Windows Server 2003 klist.c имеет несколько ошибок в PurgeTicket:

  • не очищает ответ
  • он дважды проверяет тот же "RESULT", вместо проверки "RESULT" и затем "SUB-RESULT"
2 голосов
/ 23 марта 2010

Самый простой способ - взять исходный код Microsoft KList (входит в платформу SDK \ Samples) и делать то же, что и они ...

0 голосов
/ 15 февраля 2010

Простой, тупой способ:

system("kdestroy");

Или, если вы хотите быть более легитимным, просто посмотрите источник реализации kdestroy. krb5_cc_destroy() похоже на соответствующий вызов функции.

...