2010-02-15 3 views

Répondre

4

Je crois que vous devez faire un appel à l'aide LsaCallAuthenticationPackageKERB_PURGE_TKT_CACHE_REQUEST après avoir utilisé soit LsaConnectUntrusted ou LsaRegisterLogonProcess. Désolé pas de détails, mais je n'ai pas mon code pour cela autour ...

+0

Merci beaucoup! – rkellerm

+0

Salut, Cela fonctionne excellent. De plus, y a-t-il un moyen géré de le faire? – rkellerm

+0

Habillage dans pInvokes pour le code managé. Voir si elles sont à pInvoke.Net, sinon, ce site a des tonnes d'informations. –

0

La façon simple, stupide:

system("kdestroy"); 

Ou si vous voulez être plus légitime, il suffit de vérifier la mise en œuvre d'une sourcekdestroy. krb5_cc_destroy() semble être l'appel de fonction pertinente.

+0

Merci beaucoup! – rkellerm

1

Le moyen le plus simple est de prendre le code source de Microsoft KList (Inclus dans la plate-forme SDK \ Samples), et de faire comme eux ...

1

Il est un exemple « géré C# » de purge de billets à l'aide Pinvoke à kerberos https://github.com/ErtiEelmaa/StackOverflow/blob/master/GroupPolicyUtilities.cs

trop longtemps pour copier/coller ici. Il a fallu un certain temps car les structures de pInvoke n'étaient pas valides (par exemple quelqu'un bien que C++ LONG soit égal à C# LONG et yada-yada), cependant, j'ai testé celui-ci, et cela a fonctionné pour moi.

De plus, je remarque que le serveur Windows 2003 klist.c a quelques bugs dans PurgeTicket:

  • il ne nettoie pas la réponse
  • il revérifie le même « résultat », au lieu de vérifier "RÉSULTAT" puis "SUB-RESULT"
+0

Merci - d'abord pour la référence (bien que ce soit PInvoke, donc pas exactement géré ...) et la seconde pour les bogues KList de MSFT. Je vais vérifier mon code et corriger les bugs s'ils sont là. – rkellerm

Questions connexes