我正在爲我公司的開發人員構建一個小型內部工具。其中一個小目標是在更改密碼時更新多個位置。其中一個需要更新的位置是顛覆。大多數開發人員使用TortoiseSvn,但不是所有人都這麼做(所以我更喜歡程序中立的解決方案,但這不是必需的)。如何以編程方式更新本地機器上的顛覆密碼?
從我對這個主題的研究中,我的第一印象是,烏龜或其他應用程序將具有我可以使用的更改密碼功能。這不是我所能找到的。所以我的下一個想法是更改存儲在%APPDATA%\ Subversion \ auth \ svn.simple中的加密密碼。這樣,我們可以繞過任何程序,只需修復本地機器憑據,然後就可以開心。
對於Windows機器,Subversion使用wincrypt密碼存儲進行加密。使用該代碼非常簡單。我發現這個DPAPI (from Obviex)代碼可以爲我處理加密。它只是照顧我的細節(小注:我與System.Security.Cryptography.ProtectedData
有一些小問題,所以我決定堅持這種方式)。
使用此代碼,我能夠從svn.simple文件夾解密密碼,並發現它工作(先前保存的身份驗證已解密,並顯示正確的密碼)。但是,當我加密密碼並將其存儲在適當的位置時,我將始終從TortoiseSvn獲得登錄屏幕。它不喜歡我的加密密碼。
那麼,我的問題是什麼?有人完成了類似於我想要做的事情嗎?我應該忘記嘗試更新Subversion密碼嗎?我是否應該強制檢出存儲庫並提供憑據(我可以使用SharpSvn執行此操作),然後在完成後刪除存儲庫?
猜猜我只是希望能找到有人已經解決了這個問題,並可以指出我的方向是正確的。如果您有任何問題,請告訴我。
其他值得注意的鏈接:
- Stackoverflow question on extracting TortoiseSVN password
- TortoiseSVN Password Decrypter - 用它進行解析svn.simple中的文件。將新的加密密碼應用於現有的svn認證文件做了小的更改。
這是很好的知道,但不會在這種情況下工作。需要在不更改Subversion服務器的情況下完成此操作。 – techvice
此外,我對SVN服務器應用程序的更改對最終用戶來說是完全透明的。但是,如果你不能改變它,你不能改變它。無論如何,祝你好運。 – TylerOhlsen
除非您需要爲您的SVN回購使用Linux/Unix/Mac服務器,否則這絕對有好處。在我們的例子中,這是非常痛苦的,我們不得不升級服務器(盒子不在支持範圍內),所以我們只是在移動盒子的同時遷移到了VisualSVN服務器。我通過電子郵件將新的存儲庫URL發送給團隊,並告訴他們使用他們的常規LDAP密碼。這非常順利。 –