¿Cómo actualizar programáticamente la contraseña de subversión en la máquina local?

Estoy construyendo una pequeña herramienta interna para usar con los desarrolladores en mi compañía. Uno de los objectives más pequeños es actualizar varias ubicaciones cuando cambiamos nuestras passwords. Una de estas ubicaciones que debe actualizarse es la subversión. La mayoría de los desarrolladores usan TortoiseSvn, pero no todos lo hacen (por lo que preferiría una solución neutra para el progtwig pero no es un requisito).

De mi investigación sobre este tema, mi primera printing fue que Tortoise u otra aplicación tendría una function de cambio de contraseña que podría usar. Esto no es así por lo que puedo encontrar. Entonces mi siguiente pensamiento fue cambiar la contraseña cifrada que está almacenada en% APPDATA% \ Subversion \ auth \ svn.simple. De esta manera, podríamos pasar por alto cualquier progtwig y simplemente arreglar las cnetworkingenciales de la máquina local y estar de nuestra manera feliz.

Para una máquina con Windows, subversión usa la tienda de passwords de wincrypt para el encryption. Trabajar con ese código fue bastante directo. Encontré este código DPAPI (de Obviex) que funcionaría para manejar el encryption por mí. Simplemente se ocupa de los detalles para mí (pequeña nota: tuve algunos pequeños problemas con System.Security.Cryptography.ProtectedData así que decidí seguir con este otro path).

Con este código, pude descifrar la contraseña de la carpeta svn.simple y encontrar que funcionó (la authentication guardada previamente se descifró y se presentó la contraseña correcta). Sin embargo, cuando cifraba la contraseña y la almacenaba en el lugar correcto, siempre obtendría una pantalla de inicio de session de TortoiseSvn. No me gusta mi contraseña cifrada.

Entonces, ¿cuál es mi pregunta … alguien ha logrado algo similar a lo que estoy tratando de hacer? ¿Debería olvidar intentar actualizar la contraseña de subversión? ¿Debería forzar la salida de un repository y proporcionar las cnetworkingenciales (puedo hacerlo usando SharpSvn ) y luego eliminar el repository una vez que termine?

Supongo que estoy esperando encontrar que alguien ya ha resuelto este problema y puede apuntarme en la dirección correcta. Por favor hágame saber si tiene preguntas.

Otros enlaces notables:

  • Pregunta de Stackoverflow al extraer la contraseña de TortoiseSVN
  • TortoiseSVN Password Decrypter : se usa para analizar los files dentro de svn.simple. Se realizaron pequeños cambios para aplicar la nueva contraseña cifrada a los files de authentication svn existentes.

Sé que esta es una dirección completamente diferente a la que estaba pidiendo, pero en la circunstancia correcta, logra su objective …

Si está utilizando Active Directory para administrar a sus usuarios y está dispuesto a cambiar sus aplicaciones de server SVN, debe considerar el server VisualSVN . Tiene soporte para authentication contra LDAP y usa el SID del usuario en el file authz para que los cambios de nombre de usuario y contraseña sean transparentes. Además, es gratis para uso comercial .