用 DELPHI 搞定 VisualSVN 用户密码远程修改的问题

这个是 2011 年的旧贴了。


VisualSVN 的用户名、密码,必须在服务器上用它提供的管理器界面设置。客户端小乌龟里面,没有让用户可以修改自己的密码的功能。


网上查资料,首先找到的,是一个程序员提供的一套通过替换掉 VisualSVN 安装好的程序里的一部分文件来提供远程网页访问 VisualSVN 的页面上增加用户修改自己密码的功能的编译好的文件。下载,测试,的确能行。但这样的编译好的程序俺不敢用,怕有什么问题。那哥们没有说他的程序的实现机理,也没有提供SOURCE CODE。


再查资料,发现 VisualSVN 的用户密码,可以用 APACHE 提供的 htpasswd.exe 来生成。下载 APACHE,安装,从 BIN 目录里找到 htpasswd.exe,一个命令行工具,在CMD窗口里运行,来回试了几次参数,果然修改 SVN 的用户密码成功。剩下的问题就好办了,写一个WEB程序,让用户在网页里提交自己的新密码,然后由这个 WEB 程序在服务器上调用 htpasswd.exe 去修改 SVN 的密码。

写这样的程序,对俺来说,最顺手的是 DELPHI。虽然 ASP 和 ASP.NET 俺也能写,但必须要在服务器上安装 IIS,安装 .Net 环境,麻烦。俺用 DELPHI 写一个独立运行的 EXE 就可以当作 WEB SERVER 用,更简单。

用 DELPHI 写 WEB 服务器程序,可以用 WebBroker 或 WebSnap,不过最快的还是用 IntraWeb。于是俺选择 IntraWeb,拖几个控件过来,页面搞定。编译运行,一个自带 WEB SERVER 的独立运行的 EXE 程序跑起来,用网页去访问,提交,程序去修改 SVN 用户密码,测试 SVN,通过。

有个问题:用 htpasswd.exe 针对同一个用户,采用相同的密码,每次生成的加密后的密码(实际上是MD5)都不一样。这就很奇怪了:每次都不一样的话,下次用户访问的时候,SVN SERVER 如何知道这个密码是对的?

网上搜了下,找不到答案。也找不到如何验证 htpasswd.exe 生成的密码MD5的文章。

但我必须验证提交新密码的用户的老密码没问题。怎么办?只好变通一下,让 DELPHI 自己用数据库记录用户名和密码。这样,用户访问网页的时候,我的程序首先在自己的数据库里验证用户的老密码正确,然后再将新密码提交给 htpasswd.exe 去修改 SVN 的用户密码。

大概实现机理就是上面所讲。SOURCE CODE 就不贴了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值