VisualSVN Server是一個非常不錯的SVN Server程式,方便,直觀,使用者管理也異常方便。不過,它本身並沒有提供線上修改密碼的功能。由於在實際使用過程中,一旦SVN的使用者比較多,只單單依靠windows的管理主控台去修改密碼 顯然是不太合適的。總不能任何人想改個密碼還要通過管理員吧?所以,就想為其增加線上修改密碼的功能。
說實話,網上已經有了可以線上修改密碼的方法。試用過,也的確可以。不過我這個人說好聽點是比較勤奮,喜歡鑽研,說難聽點,就是喜歡鑽牛角尖,呵呵。所以,一直想自己寫一個線上修改密碼的程式。不過一直苦於不知道svn密碼的密碼編譯演算法,也不太會調用dll(svn其實是使用的httpd的加密庫),所以,一開始只能忍了~
不過後來機會來了,一不留神看了一下libapr-util的源碼,呵呵,發現原來svn使用的密碼編譯演算法也不太複雜嗎(呵呵,其實蠻複雜的,但是用程式來實現貌似還不算難)。索性就弄了個,還挺好用^_^
先將寫好的程式放上來吧,稍候再把源碼貼出來(嘿嘿,先賣賣關子)
首先,點擊下面的連結下載線上修改密碼所需的檔案:
VisualSVN Server線上修改密碼用到的檔案
點此下載
然後,解壓之後,把裡面的內容copy到Visual SVN Server的安裝目錄下覆蓋掉同名的檔案夾
接著,修改conf目錄下的httpd-custom.conf檔案, 把“ScriptAlias”一行後面的路徑修改為你的機器上的VisualSVN Server的實際路徑:
然後,修改cgi-bin目錄下的svnpass.ini檔案:
這是一個設定檔,用來控制修改密碼的程式的。簡單解釋一下:
1: [PATH]
2: #下面這行用於指定svn的密碼檔案
3: pwdFilePath=htpasswd
4:
5: [ERRCODE]
6: #下面這些行用來指定當出現相應錯誤時的使用者提示
7: UnKnownErr=Unknown error
8: NoSuchUser=No Such User
9: IncorectOldPwd=Incorect old password
10: NewPwdNotMatch=New password not match
11: UserNameTooShort=Username is too short to go
12: UserNameTooLong=Username is too long to go
13: PwdTooShort=the Password is too short to go
14: PwdTooLong=the Password is too long to go
15:
16: [RULES]
17: # 下面這幾行用於控制使用者名稱的最小和最大長度,以及密碼的最小和最大長度
18: MinUserNameLen=1
19: MaxUserNameLen=20
20: MinPwdLen=1
21: MaxPwdLen=30
根據需要修改完畢之後(一般只需要修改pwdFilePath即可),重啟VisualSVN Server。開啟瀏覽器,會發現svn的介面有點不太一樣了:
點擊左上方的“修改密碼”,即可在網頁的最上部彈出一個修改密碼的表單:
輸入密碼資訊之後,點擊“確認修改”,即可實現密碼修改功能。如果資訊有誤,則會提示相應的資訊:
這些提示資訊都是在ini檔案裡定義的。
OK,just enjoyit ~ ^_^
REFERENCES:http://www.mculee.cn/post/69.html