C0EEBDA1

在梦中,我是有超能力的。。。

« 一个用标准C写的ini文件操作程序在VC下使用标准的socket函数编程的步骤 »

为VisualSVN Server增加在线修改用户密码的功能

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的实际路径:

image

然后,修改cgi-bin目录下的svnpass.ini文件:

image

这是一个配置文件,用来控制修改密码的程序的。简单解释一下:

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

image

点击左上角的“修改密码”,即可在网页的最上部弹出一个修改密码的表单:

image

输入密码信息之后,点击“确认修改”,即可实现密码修改功能。如果信息有误,则会提示相应的信息:

image

这些提示信息都是在ini文件里定义的。

 

OK,just enjoyit ~   ^_^

  • 相关文章:
  • quote 1.xurping
  • 老兄,能将相关的源代码打包发给我学习一下吗?最好是能有编译连接脚本的,要市VS地解决方案就更好了。
    先谢谢了,我邮箱:ooad@yeah.net
  • 2009-4-22 10:45:37 回复该留言
  • quote 2.行者
  • 你好呀,我试了,不能更改密码,提示 NO SUCH USER ,能帮忙解决下吗
    万分感谢
    !
    MSN: HP_CN@126.COM
    lijian 于 2009-5-18 18:29:39 回复
    你的svn的密码文件配置的正确吗?
    行者 于 2009-5-19 11:34:38 回复
    李,你好,
    SVN 密码文件 和你的帖图是一样的呀~所以没做修改!

    [PATH]
    pwdFilePath=htpasswd

    [ERRCODE]
    UnKnownErr=Unknown error
    NoSuchUser=No Such User
    IncorectOldPwd=Incorect old password
    NewPwdNotMatch=New password not match
    UserNameTooShort=Username is too short to go
    UserNameTooLong=Username is too long to go
    PwdTooShort=the Password is too short to go
    PwdTooLong=the Password is too long to go

    [RULES]
    MinUserNameLen=1
    MaxUserNameLen=20
    MinPwdLen=1
    MaxPwdLen=30
    我的 Repositories Root 我做了重指向,在别的盘符!
    是不是与这个有关~
    行者 于 2009-5-19 13:32:26 回复
    配置好了,多谢!
  • 2009-5-18 18:04:59 回复该留言
  • quote 3.iamtaro
  • 我与行者一样呢,怎么都是No Such User,还应该改什么呢?我的Repositories Root 也改了地方,这个要在哪里改呢?
    lijian 于 2009-6-2 13:16:26 回复
    修改这一行:
    pwdFilePath=htpasswd
    iamtaro 于 2009-6-4 14:06:37 回复
    谢谢已经搞定了~

    有时间的话希望做一个页面管理所有user的功能:)重置密码、加入/退出某组
    lijian 于 2009-6-5 10:11:54 回复
    呵呵,有时间我研究一下 ^_^
  • 2009-6-2 10:07:02 回复该留言
  • quote 4.南方小虫
  • 与上面问题一样,SVN的pwdFilePath=htpasswd
    密码地址如果以系统默认安装的地址应该怎么修改,
    谢谢。
  • 2009-6-5 9:24:14 回复该留言
  • quote 5.南方小虫
  • 可以是可以了,为什么只能在服务器上的WEB访问,客户端就没有这个效果
    lijian 于 2009-6-5 10:11:20 回复
    不应该啊?我测试的时候都是在客户端上测试的,因为服务器是在机房里的。你试试把客户端的浏览器缓存清空
  • 2009-6-5 10:09:02 回复该留言
  • quote 6.南方小虫
  • 可以了,谢谢LZ。方便的话,能将相关的源代码打包发给我学习一下吗?
    lijian 于 2009-6-9 9:31:35 回复
    我发过两篇文章,把SVN的密码算法的源码贴出来了,其实这个在线修改的程序就是调用那个程序做的,这个程序本身其实没什么,就是打开文件,然后分析用户呀之类的,所以,可以建议您去参考一下那两篇文章哦 ^_^
  • 2009-6-5 17:45:23 回复该留言
  • quote 7.liufeittkl
  • 兄弟,能把源码给发过来 吗? 学习学习, 我也出现了 no such user的错误。
    邮箱是 liufeittkl@163.com
  • 2009-6-24 10:52:40 回复该留言
  • quote 8.elaine
  • pwdFilePath=htpasswd 这个怎么配置 ,我配置成这样:pwdFilePath=D:\Repositories\htpasswd 重启visualsvn server,无效果
  • 2009-6-28 18:21:06 回复该留言
  • quote 10.zxj
  • 试了,非常好,但是下列情况有问题,请问题如何解决:
    正常情况下会出现新菜单《修改密码》,其右边显示《帮助文档》,但如果浏览器显示的是英文《help》,则不会出现密码修改的新菜单,这种情况如何解决?
    lijian 于 2009-7-1 10:47:08 回复
    这个我得研究研究,呵呵,请问英文的help是如何让它显示出来的?
    laney 于 2011-4-25 14:16:00 回复
    我也出现英文的HELP,然后没有修改密码按钮,怎么解决呢?
  • 2009-7-1 10:22:39 回复该留言
  • quote 11.ygx34
  • 我安装的是1.7.3,浏览器显示的是英文help;不会出现密码修改的新菜单
    lijian 于 2009-7-7 8:54:15 回复
    能否发一份安装文件,或者安装之后的文件给我?
    ygx34 于 2009-7-21 0:11:14 回复
    我是从这里下载的
    http://www.visualsvn.com/server/download/
    ygx34 于 2009-7-21 0:11:18 回复
    我是从这里下载的
    http://www.visualsvn.com/server/download/
  • 2009-7-6 22:51:34 回复该留言
  • quote 13.zzz
  • VisualSVN-Server-1.7.1 很好用!
    VisualSVN-Server-2.0.0(当前最新版) 无效,请帮忙 跟进升级一下吧,谢谢!
    lijian 于 2009-7-8 9:02:05 回复
    我找时间升级一下,谢谢您的关注 ^_^
    lijian 于 2009-7-8 9:55:29 回复
    刚刚测试了一下,2.0.0下可以用啊?请问您那边不能用的现象是什么样的?
  • 2009-7-7 18:16:32 回复该留言
  • quote 14.zzz
  • 又试了一下,VisualSVN-Server-2.0.0 的确有效.
    但发现一个问题,,用8080端口无效,其他端口号没问题.

    请测试!

  • 2009-7-9 1:08:30 回复该留言
  • quote 15.laney
  • 为什么我界面一直显示“请稍等”然后就没有什么反应了呢,不提示修改成功也不提示错误(此操作在服务端)。
    还有客户端显示是英文的"help",没有"修改密码"按钮。不知道什么原因,还望指教
  • 2009-7-13 14:40:45 回复该留言
  • quote 16.gengchq
  • 怎么我的还是提示“no such user”呢?我的安装路径和你一样的,直接把你的文件覆盖重启 了服务的,还需要改什么吗?
  • 2009-8-21 10:03:37 回复该留言
  • quote 17.xuting
  • 您好!我按照上面的配置,但是也提示no such user,配置的和你的一样,只修改了httpd-custom.conf文件,如下:LoadModule alias_module bin/mod_alias.so
    LoadModule cgi_module bin/mod_cgi.so
    <IfModule alias_module>
    ScriptAlias /cgi-bin/ "D:/VisualSVN Server/cgi-bin/"
    </IfModule>,麻烦有配置成功的帮忙,非常感谢!
  • 2009-10-10 16:25:45 回复该留言
  • quote 18.xuting
  • 我把svnpass.ini文件修改[PATH]
    pwdFilePath=D:\Repositories\htpasswd指定到我密码文件,就好用了,谢谢楼主这么好用的工具
  • 2009-10-12 11:10:35 回复该留言
  • quote 19.dave
  • 为什么我配置完了后在修改密码的时候一点反应都没有呢?
  • 2009-10-15 10:59:11 回复该留言
  • quote 20.george
  • firefox浏览器正常,iE不能显示修改密码框,只显示help按钮
  • 2009-10-16 14:17:04 回复该留言
  • quote 21.george
  • IE已经正常,清除ie的记录即可。工具->清理上网记录。

    楼主的是好贴,感谢。
  • 2009-10-16 14:36:36 回复该留言
  • quote 22.subversion
  • 我试过好几遍了,仍然和原来一样----清理记录也没有效果,只显示help

    我用的是最新的VisualSVN Server2.0.7
  • 2009-10-22 13:12:38 回复该留言
  • quote 23.subversion
  • 并且我的左上角显示Revision 99: Collection of Repositories——而不是中文的“仓库列表”
  • 2009-10-23 10:29:18 回复该留言
  • quote 24.alx
  • 我用的是2.0.8版的,覆盖了文件后VisualSVN Server服务就启动不了了,不知什么原因。请紧急帮助。
    lijian 于 2009-11-5 14:29:50 回复
    将bin目录下的mod_alias.so这个文件换回2.0.8原来的 试一下
    目前是怀疑2.0.8版本的Apache版本升级了,mod_alias.so文件也跟之前不一样,所以替换之后出现问题。
  • 2009-11-5 14:19:42 回复该留言
  • quote 26.happy
  • 不过,能在svnindex.xsl基础上填入功能,而且其他依旧正常运转的确不错。
    这个学习方法很使得学习。
    看来微妙的改写添加,的确可以更自己的工作带来很大好处。不知道作者能说下你自己编写这个修改密码功能的思想过程么
    很乐意受你的点化!!!!1
    aaaaa9999922222@sina.com
  • 2010-2-24 14:34:54 回复该留言
  • quote 27.clark
  • 按照上面的方式设置后如果服务器放在windows xp上可以成功,但是在windows server 2003 上修改后服务启动不了!
  • 2010-3-29 11:21:10 回复该留言
  • quote 28.svn
  • 跟前面一样,界面一直显示“请稍等”然后就没有什么反应了,不提示修改成功也不提示错误
    svn 于 2010-3-31 10:24:03 回复
    OK了,终于成功,看了日志发现原来是cgi-bin后面少了/,给没成功的提个醒.
    <IfModule alias_module>
    ScriptAlias /cgi-bin/ "D:/Program Files/VisualSVN Server/cgi-bin/"
    </IfModule>
  • 2010-3-30 14:54:05 回复该留言
  • quote 29.ycy
  • VisualSVN-Server-2.1 配置好了就无法启动服务器了
  • 2010-4-6 15:35:09 回复该留言
  • quote 32.Aha
  • 能否产生密码修改记录(即 谁在何时修改密码了)?
    谢谢。
  • 2010-5-28 14:47:38 回复该留言
  • quote 33.rosylucky
  • LZ,你好,我用的VISUALSVN SERVER是2.1.2,点密码修改时,左下角显示网页有错误,双击后显示如下:
    行:1
    字符:1
    错误:缺少对象
    代码:0
    不知道是怎么回事,我用的是IE6.0,svn是HTTPS访问的。
  • 2010-7-6 14:23:52 回复该留言
  • quote 34.inse1979

  • 大大,能把源码给发过来吗? 学习学习

    邮箱是inse1979@gmail.com
  • 2010-8-10 19:33:24 回复该留言
  • quote 35.inse1979
  • 大大,
    试了一下,VisualSVN-Server-2.1.3 有效.
    能把源码给发过来吗? 学习学习
    inse1979@gmail.com
  • 2010-8-10 19:34:39 回复该留言
  • quote 36.binlaw
  • VisualSVNServer.exe: Syntax error on line 31 of C:/Program Files/VisualSVN Server/conf/httpd.conf: Cannot load C:/Program Files/VisualSVN Server/bin/mod_alias.so into server: \xbe\xdc\xbe\xf8\xb7\xc3\xce\xca\xa1\xa3
    有心人 于 2011-2-17 9:27:17 回复
    在覆盖时,不要停止VisualSVN Server的服务,应该就可以啦,因为停止可能会造成部分文件无法正常覆盖
  • 2010-8-16 16:09:42 回复该留言
  • quote 38.chx
  • 非常谢谢,博主的分享。
    解决我的困难,非常感谢!
  • 2011-2-12 13:36:13 回复该留言
  • quote 40.grcgao
  • 配置完毕,服务器无法启动,事件查看器中报 无法打开配置文件。
  • 2011-4-20 15:35:56 回复该留言
  • quote 42.sonicss
  • visualsvn版本:2.1.9
    操作系统Win7 64bit

    按照上面的修改,并参考了大家的意见,在按修改密码时,一直显示请稍等...,即便输错了用户名,也是这样提示

    httpd-custom.conf 里,最后也加上了/号


    我的邮箱:sonicss@126.com
  • 2011-7-27 21:46:07 回复该留言
  • quote 43.flyfire
  • 求助楼主

    visualsvn版本:2.1.9
    内嵌apache版本是2.2.19
    安装平台windows server2008

    按楼主教程操作后,在按修改密码时,一直显示请稍等...

    ScriptAlias /cgi-bin/ "F:/Program Files/VisualSVN Server/cgi-bin/"
    此处应该没有问题,我安装在F盘

    pwdFilePath=htpasswd
    修改为
    pwdFilePath=D:\SvnRoot\htpasswd
    pwdFilePath=D:/SvnRoot/htpasswd
    pwdFilePath="D:\SvnRoot\htpasswd"
    pwdFilePath="D:/SvnRoot/htpasswd"
    以上四种均试过,也是一样

    mod_alias.so文件替换或不替换也一样(需停止服务才能替换)
    希望楼主能出来说明一下,让大家少走的弯路呵
  • 2011-8-12 14:47:35 回复该留言
  • quote 44.flyfire
  • 搞定了,重装就好了
    visualsvn版本:2.1.9
    内嵌apache版本是2.2.19
    安装平台windows server2008

    pwdFilePath=htpasswd
    修改为pwdFilePath=D:\SvnRoot\htpasswd
    停止不停止VisualSVN Server的服务都可以,就是说mod_alias.so这个文件其实是可以不用替换的
  • 2011-8-13 11:36:43 回复该留言
  • quote 45.dengsimin
  • 按照上面的修改,并参考了大家的意见,在按修改密码时,一直显示请稍等...,即便输错了用户名,也是这样提示

    什么原因?
    admin 于 2012-1-4 14:42:29 回复
    我也这个样子 一直提示请稍等
  • 2011-8-15 11:02:39 回复该留言
  • quote 47.flyfire
  • 博主要是能再增加在线使用某个对仓库有读写权限的帐号对仓库下级目录用户权限进行管理的功能就完美了。要是没有时间,希望能公开嵌入CGI到apache调用的原理和方法,让大伙一起来实现呵。
  • 2011-8-17 10:21:16 回复该留言
  • quote 48.sonicss
  • 重装了2.19,也是过2.50 beat版,确实都可以了,按照flyfire的建议,没有使用mod_alias.so
  • 2011-8-20 23:20:45 回复该留言
  • quote 49.leaf
  • 我用的是2.1.1版本,也出现各种问题,我的解决方法是
    1.不要使用作者的\bin\mod_alias.so,不覆盖这个,用回原来安装的原始那个。
    2.cgi-bin\svnpass.ini 的 pwdFilePath=G:/VisualSVN Server/Repositories/htpasswd,改成绝对路径。
    我的就可以顺利修改密码了~
  • 2011-12-2 15:43:48 回复该留言
  • quote 50.墨衣亦香
  • lz我安装的是VisualSVN-Server-2.0.6
    按照上面修改之后
    ScriptAlias /cgi-bin/ "C:/Program Files/VisualSVN Server/cgi-bin/"
    pwdFilePath=D:/Repositories/htpasswd
    在重启服务的时候报错0x8007042a
    后来取消mod_alias.so的覆盖重启之后还是不能显示修改的密码的界面
  • 2011-12-27 14:15:36 回复该留言
  • quote 51.墨衣亦香
  • 再提一个问题:
    我在浏览器上应该输入什么地址来到达修改密码的页面
  • 2011-12-27 14:39:28 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense  theme by BokeZhuti

Copyright 2008-2009 C0EEBDA1. Some Rights Reserved. 备案号:京ICP备09020681号