2010-02-15 8 views

risposta

4

Credo che hai bisogno di fare una chiamata a LsaCallAuthenticationPackage utilizzando KERB_PURGE_TKT_CACHE_REQUEST dopo utilizzando LsaConnectUntrusted o LsaRegisterLogonProcess. Scusate senza dettagli, ma non ho il mio codice per questo intorno ...

+0

Grazie mille !!! – rkellerm

+0

Ciao, Funziona perfettamente. Inoltre, c'è un modo gestito per farlo? – rkellerm

+0

Inserimento di pInvokes per il codice gestito. Vedi se questi sono su pInvoke.Net, se no, quel sito ha tonnellate di informazioni. –

0

La semplice, stupido modo:

system("kdestroy"); 

Oppure, se si vuole essere più legittimo, basta controllare la source di un'implementazione kdestroy. krb5_cc_destroy() sembra essere la chiamata di funzione rilevante.

+0

Grazie mille !!! – rkellerm

1

Il modo più semplice è prendere il codice sorgente di Microsoft KList (incluso nella piattaforma SDK \ Samples), e fare come loro ...

1

C'è un esempio "C#" di spurgo ticket Kerberos utilizzando PInvoke a https://github.com/ErtiEelmaa/StackOverflow/blob/master/GroupPolicyUtilities.cs

troppo tempo per copiare/incollare qui. Ci è voluto del tempo perché le strutture di pInvoke non erano valide (ad es. Qualcuno sebbene C++ LONG sia uguale a C# LONG e yada-yada), tuttavia, ho provato questo e ha funzionato per me.

Inoltre, ho notato che il server Windows 2003 klist.c ha qualche bug nel PurgeTicket:

  • non ripulire la risposta
  • che controlla due volte lo stesso "risultato", invece di controllare "RISULTATO" e poi "SUB-RISULTATO"
+0

Grazie - innanzitutto per il riferimento (anche se è PInvoke, quindi non esattamente gestito ...) e secondo per gli errori KList di MSFT. Controllerò il mio codice e correggerò i bug se ci sono. – rkellerm

Problemi correlati