3

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

根据我对这个主题的研究,我的第一印象是 Tortoise 或其他应用程序将具有我可以使用的更改密码功能。从我能找到的情况来看,情况并非如此。所以我的下一个想法是更改存储在 %APPDATA%\Subversion\auth\svn.simple 中的加密密码。这样,我们就可以绕过任何程序,只需修复本地机器凭据,然后就可以愉快地前进了。

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

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

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

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

其他值得注意的链接:

4

1 回答 1

1

我知道这与您所要求的方向完全不同,但在正确的情况下,它可以实现您的目标......

如果您使用 Active Directory 来管理您的用户并且您愿意切换您的 SVN 服务器应用程序,您应该考虑使用VisualSVN 服务器。它支持针对 LDAP 的身份验证,并且在 authz 文件中使用用户的 SID,因此用户名和密码的更改是透明的。此外,它可以免费用于商业用途

于 2012-10-14T08:48:55.343 回答