2012-10-08 42 views
3

我正在爲我公司的開發人員構建一個小型內部工具。其中一個小目標是在更改密碼時更新多個位置。其中一個需要更新的位置是顛覆。大多數開發人員使用TortoiseSvn,但不是所有人都這麼做(所以我更喜歡程序中立的解決方案,但這不是必需的)。如何以編程方式更新本地機器上的顛覆密碼?

從我對這個主題的研究中,我的第一印象是,烏龜或其他應用程序將具有我可以使用的更改密碼功能。這不是我所能找到的。所以我的下一個想法是更改存儲在%APPDATA%\ Subversion \ auth \ svn.simple中的加密密碼。這樣,我們可以繞過任何程序,只需修復本地機器憑據,然後就可以開心。

對於Windows機器,Subversion使用wincrypt密碼存儲進行加密。使用該代碼非常簡單。我發現這個DPAPI (from Obviex)代碼可以爲我處理加密。它只是照顧我的細節(小注:我與System.Security.Cryptography.ProtectedData有一些小問題,所以我決定堅持這種方式)。

使用此代碼,我能夠從svn.simple文件夾解密密碼,並發現它工作(先前保存的身份驗證已解密,並顯示正確的密碼)。但是,當我加密密碼並將其存儲在適當的位置時,我將始終從TortoiseSvn獲得登錄屏幕。它不喜歡我的加密密碼。

那麼,我的問題是什麼?有人完成了類似於我想要做的事情嗎?我應該忘記嘗試更新Subversion密碼嗎?我是否應該強制檢出存儲庫並提供憑據(我可以使用SharpSvn執行此操作),然後在完成後刪除存儲庫?

猜猜我只是希望能找到有人已經解決了這個問題,並可以指出我的方向是正確的。如果您有任何問題,請告訴我。

其他值得注意的鏈接:

回答

1

我知道這是不是你問,但在正確的情況下,實現了自己的目標完全不同的方向......

如果您正在使用Active Directory來管理你的用戶,你願意切換你的SVN服務器應用程序,你應該考慮VisualSVN server。它支持針對LDAP的身份驗證,並在authz文件中使用用戶的SID,因此用戶名和密碼更改都是透明的。加上它是free for commercial use

+0

這是很好的知道,但不會在這種情況下工作。需要在不更改Subversion服務器的情況下完成此操作。 – techvice

+0

此外,我對SVN服務器應用程序的更改對最終用戶來說是完全透明的。但是,如果你不能改變它,你不能改變它。無論如何,祝你好運。 – TylerOhlsen

+1

除非您需要爲您的SVN回購使用Linux/Unix/Mac服務器,否則這絕對有好處。在我們的例子中,這是非常痛苦的,我們不得不升級服務器(盒子不在支持範圍內),所以我們只是在移動盒子的同時遷移到了VisualSVN服務器。我通過電子郵件將新的存儲庫URL發送給團隊,並告訴他們使用他們的常規LDAP密碼。這非常順利。 –

相關問題