天天看點

為VisualSVN Server增加線上修改使用者密碼的功能

VisualSVN Server是一個非常不錯的SVN Server程式,友善,直覺,使用者管理也異常友善。

不過,它本身并沒有提供線上修改密碼的功能。由于在實際使用過程中,一旦SVN的使用者比較多,隻單單依靠windows的管理控制台去修改密碼 顯然是不太合适的。

總不能任何人想改個密碼還要通過管理者吧?是以,就想為其增加線上修改密碼的功能。

說實話,網上已經有了可以線上修改密碼的方法。試用過,也的确可以。不過一直苦于不知道svn密碼的加密算法,也不太會調用dll(svn其實是使用的httpd的加密庫),不過後來機會來了,一不留神看了一下libapr-util的源碼,呵呵,發現原來svn使用的加密算法也不太複雜嗎(呵呵,其實蠻複雜的,但是用程式來實作貌似還不算難)。索性就弄了個,還挺好用^_^

先将寫好的程式放上來吧,稍候再把源碼貼出來(嘿嘿,先賣賣關子)

1、首先把同檔案夾裡面的内容copy到Visual SVN Server的安裝目錄下覆寫掉同名的檔案夾

接着,修改conf目錄下的httpd-custom.conf檔案, 把“ScriptAlias”一行後面的路徑修改為你的機器上的VisualSVN Server的實際路徑:

為VisualSVN Server增加線上修改使用者密碼的功能

然後,修改cgi-bin目錄下的svnpass.ini檔案:

為VisualSVN Server增加線上修改使用者密碼的功能

這是一個配置檔案,用來控制修改密碼的程式的。簡單解釋一下:

 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的界面有點不太一樣了:

為VisualSVN Server增加線上修改使用者密碼的功能

點選左上角的“修改密碼”,即可在網頁的最上部彈出一個修改密碼的表單:

為VisualSVN Server增加線上修改使用者密碼的功能

輸入密碼資訊之後,點選“确認修改”,即可實作密碼修改功能。如果資訊有誤,則會提示相應的資訊:

為VisualSVN Server增加線上修改使用者密碼的功能

這些提示資訊都是在ini檔案裡定義的。

繼續閱讀