2010-02-15 44 views

Respuesta

4

yo creo que tiene que hacer una llamada a LsaCallAuthenticationPackage usando KERB_PURGE_TKT_CACHE_REQUEST después de usar ya sea LsaConnectUntrusted o LsaRegisterLogonProcess. Lo siento no hay detalles, pero no tengo mi código para esto ...

+0

Muchas gracias! – rkellerm

+0

Hola, Funciona excelente. Además, ¿hay una forma administrada de hacerlo? – rkellerm

+0

Envoltura en pInvokes para código administrado. Vea si estos están en pInvoke.Net, si no, ese sitio tiene toneladas de información. –

0

La forma más simple, estúpida:

system("kdestroy"); 

O si quieres ser más de fiar, sólo echa un vistazo a la source de una implementación kdestroy. krb5_cc_destroy() parece ser la llamada de función relevante.

+0

¡Muchas gracias! – rkellerm

1

La manera más simple es tomar el código fuente de KList de Microsoft (Incluido en la plataforma SDK \ Samples), y hacer como ellos ...

1

Hay un ejemplo "manejado C#" purga de tickets de Kerberos utilizando PInvoke en https://github.com/ErtiEelmaa/StackOverflow/blob/master/GroupPolicyUtilities.cs

demasiado tiempo para copiar/pegar aquí. Pasó algún tiempo desde que las estructuras en pInvoke no eran válidas (por ejemplo, aunque C++ LONG es igual a C# LONG y yada-yada), sin embargo, he probado esta, y funcionó para mí.

Además, he notado que el servidor Windows 2003 klist.c tiene algunos errores en PurgeTicket:

  • que no limpia la respuesta
  • que los dobles controles de la misma "número", en lugar de marcar "RESULTADO" y luego "SUB-RESULTADO"
+0

Gracias, primero por la referencia (aunque es PInvoke, por lo que no se gestiona exactamente ...) y en segundo lugar por los errores KList de MSFT. Comprobaré mi código y corregiré los errores si están allí. – rkellerm

Cuestiones relacionadas