Obtenga las cnetworkingenciales de SharpSvn en C #

Estoy escribiendo un código C # para realizar múltiples commits a SVN en una sola pasada, al igual que la herramienta svnmucc. Hasta ahora he estado usando SharpSvn para hacer el rest de la comunicación necesaria con SVN, así que estoy pensando que puedo aprovecharlo para lograr lo siguiente:

¿Cómo puedo get las cnetworkingenciales (nombre de usuario, contraseña) que usa SharpSvn?

Me gustaría hacer algo como esto:

using (SvnClient svnClient = new SvnClient()) { SomeFictitiousCnetworkingentialsClass cnetworkingentials = svnClient.Authentication.FictitiousGetCachedCnetworkingentialsMethod(); // Call my code that performs svnmucc-like work here, passing username and password // obtained from 'cnetworkingentials' variable. } 

Sharpsvn no tiene una API que le proporcione las cnetworkingenciales de Subversion. Principalmente implementa la API libsvn_client, y en este nivel no hay acceso a esta información.

SharpSvn recibe una callback de las bibliotecas de subversión cuando estas necesitan cnetworkingenciales; en la mayoría de los casos, después de que el almacén de passwords incorporado no se autentique.

Si su código svnmucc también utiliza las apis de Subversion, puede simplemente agregar los controlleres de authentication pnetworkingefinidos de subversión.

SharpSvn en sí mismo todavía no tiene soporte svnmucc. (Hubo algunos comentarios acerca de alguien a quien le gustaba agregar esto a SharpSvn, pero no tengo noticias al respecto últimamente)

Mientras que la otra respuesta sigue siendo válida para todas las versiones actuales de SharpSvn, el soporte de SvnMucc acaba de aterrizar en el código de desarrollo de SharpSvn. Tan pronto será posible realizar operaciones similares a SvnMucc desde .Net.

 using SharpSvn; SvnCommitResult cr; using (SvnMultiCommandClient mucc = new SvnMultiCommandClient("http://my-repos/svn/")) { mucc.CreateDirectory("trunk"); mucc.CreateDirectory("branches"); mucc.CreateDirectory("tags"); mucc.CreateDirectory("trunk/src"); mucc.SetProperty("", "svn:auto-props", "*.cs = svn:eol-style=native"); mucc.SetProperty("", "svn:global-ignores", "bin obj"); mucc.Commit(out cr); // Commit r1 } using (SvnClient client = new SvnClient()) { client.CheckOut("http://my-repos/svn/", @"C:\wc"); } 

Hay una syntax ligeramente diferente disponible si desea realizar la operación desde un SvnClient existente, pero esta es la idea general.