如何以编程方式更新本地计算机上的subversion密码?

时间:2012-10-08 21:02:51

标签: c# svn authentication tortoisesvn cryptoapi

我正在构建一个小型内部工具,供我公司的开发人员使用。其中一个小目标是在我们更改密码时更新多个位置。其中一个需要更新的位置是颠覆。大多数开发人员使用TortoiseSvn,但并非所有人都这样做(所以我更喜欢程序中立的解决方案,但这不是必需的)。

根据我对该主题的研究,我的第一印象是Tortoise或其他应用程序将具有我可以使用的更改密码功能。我发现的情况并非如此。所以我的下一个想法是更改存储在%APPDATA%\ Subversion \ auth \ svn.simple中的加密密码。通过这种方式,我们可以绕过任何程序,只需修复本地计算机凭据并采用我们的快乐方式。

对于Windows机器,subversion使用wincrypt密码存储进行加密。使用该代码非常简单。我找到了这个DPAPI (from Obviex)代码,可以为我处理加密。它只是为我处理细节(小记:我在System.Security.Cryptography.ProtectedData遇到了一些小问题,所以我决定坚持使用其他方式。)

使用此代码,我能够解密svn.simple文件夹中的密码并发现它有效(以前保存的身份验证已解密并显示正确的密码)。但是,当我加密密码并将其存储在适当的位置时,我将始终从TortoiseSvn获得登录屏幕。它不喜欢我的加密密码。

那么我的问题是什么......有没有人完成类似于我想做的事情?我应该忘记尝试更新subversion密码吗?我应该强制检查存储库并提供凭据(我可以使用SharpSvn执行此操作),然后在完成后删除存储库吗?

猜猜我只是希望找到某人已经解决了这个问题并且可以指出我正确的方向。如果您有任何疑问,请告诉我。

其他值得关注的链接:

1 个答案:

答案 0 :(得分:1)

我知道这是一个完全不同的方向,但在适当的情况下,它实现了你的目标......

如果您使用Active Directory管理用户并且您愿意切换SVN服务器应用程序,则应考虑VisualSVN server。它支持对LDAP进行身份验证,并在authz文件中使用用户的SID,因此用户名和密码更改是透明的。加上free for commercial use