Discuz!NT官方社区

首页 » Discuz!NT开发与测试 » Discuz!NT插件开发 » 专为"笨小孩儿"建贴!OBLOG整合方法。
没有心情 - 2007-4-23 16:52:00
帖专为"笨小孩儿"发。
由于今天生病,刚从急诊回来,所以不需要上班,有时间就为你写了此帖!同样也送给各位初学者!(注:女生请勿看此帖!否则自尽向我谢罪!)
此帖仅供参考,因为我是用此方法整合成功的。
此方法为NT论坛做住用户数据库,找回密码等功能使用NT论坛自身功能。
基本原理:使用外部连接数据库,本身并不保存密码,使用外部用户数据库作为验证。当用户建立数据时仅建立OBLOG相关数据于OBLOG数据库。不会对原用户数据库进行修改。
已知问题:暂无深入测试报告。
修改文件:仅部分OBLOG程序文件(conn.asp、md5.asp)
简单介绍:由于OBLOG自带整合功能,所以无需第三方程序安装,方便简单。需要修改配置文件及MD5.asp文件,因为OBLOG使用的是16位MD5加密,而NT使用的是32位MD5加密,在密码验证上会出现问题,所以需要将MD5.asp修改为32位MD5加密方式。

先找到conn.asp文件,修改相应内容,这非常简单!
以下两段为需要修改的内容!

'使用外部数据库:0-不使用,1-使用
Const Is_ot_User=0





'若使用外部数据库表请自行修改下面的变量值
If Is_ot_User=1 And InStr(LCase(request.ServerVariables("HTTP_REFERER")),"admin_")=0 Then
  ot_connstr= "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath("/bbs/data/dvbbs7.mdb") 'access外部数据库连接字符串
  'ot_connstr = "Provider = Sqloledb; User ID = ***; Password = ***; Initial Catalog = ***; Data Source = ***;" 'sql外部数据库连接字符串
  Set ot_conn = Server.CreateObject("ADODB.Connection")
  ot_conn.open ot_connStr '外部数据库连接
  ot_usertable="dv_user" '用户表名
  ot_username="username" '用户名字段
  ot_password="userpassword" '密码字段
  ot_regurl="../bbs/reg.asp" '注册用户链接
  ot_modIfypass1="../bbs/modIfyadd.asp?t=1" '修改密码连接
  ot_modIfypass2="../bbs/modIfyadd.asp?t=1" '修改密码提示问题连接
  ot_lostpasswordurl="../bbs/lostpass.asp" '找回密码链接
End If


一步最重要!修改MD5加密方式!由于NT论坛模式使用的是32位加密,而OBLOG使用的是16位,所以要设置NT为动网兼容模式或将OBLOG设置为32位MD5加密。
这里推荐将OBLOG设置为32位加密,好处就不说了。一般都想得出来!
下面说说修改方法。
文件位于~\inc\md5.asp (“~”代表OBLOG安装的目录)
用记事本打开此文件,在尾部找到以下代码。


    MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
    'MD5=LCase(WordToHex(b) & WordToHex(c))


上面两行代码分别代表32位加密同16位加密。
原理是将密文分为a.b.c.d这样4个段落,每段8 bit。16位加密则是b+c。32位则是a+b+c+d。
所以使用32位加密就注释掉下面那个"MD5=LCase(WordToHex(b) & WordToHex(c))"。
注释方法就是在前面用一个英文的单引号注释掉,也就是这个  '  !
要注意的一点是!你的管理员密码还是16位加密,并保存在OBLOG的数据库中!
修改方法:在OBLOG数据库中找到admin的Password,在原来的16位密文上覆盖32位密文(明文admin的32位MB5密文:21232f297a57a5a743894a0e4a801fc3)。
修改后登陆管理员后台修改管理员密码就可以了。这样比较便捷!

这样一般你的OBLOG整合已经基本完成了。看起来不少,其实就2点内容,只是解释的过为详细了。
有经验的技术看我说的这两点已经会做了,没必要继续看下去的。
还有就是本人不接受OBLOG MSSQL版本转换或去除OBLOG 底部LOGO之提问!也不会对其解答。
其实OBLOG转SQL和动网一样简单,大家可以试验一下,但是我不会对其作出任何解答!

测试后有数据库连接出错或密码不对等问题,请仔细检查自己的设置表明及字段设置是否正确。
而且插件整合板块已经贴出了部分表的结构,自己去看看吧!
我整合的时候官方还没有给出结构说明,不是也整合成功了?别有了问题马上就问别人。要先学会自我学习。实在是有问题再拿出来问,那才叫作真正的问题!请初学者自重!
有些相关的必要设置我就不多说了,其实自己想想都知道怎样设置了。自己慢慢研究吧!不懂再建立主题问吧!
没有心情 - 2007-4-23 20:30:00
看来有很多人看完不回复阿。
笨小孩儿 - 2007-4-24 8:07:00
OKOK,谢啦,谢啦:D
南南 - 2007-4-24 8:12:00
整合成功后再来回一下呵呵
笨小孩儿 - 2007-4-24 8:18:00
祝福楼主早日康复:D
frtime - 2007-4-24 8:58:00
收藏 回复
笨小孩儿 - 2007-4-24 11:50:00
兄弟虽然整合成功了,但是没有做到同时LOGIN,嘿嘿:D

这个交给我
没有心情 - 2007-4-24 13:39:00
同时LOGIN我还没有测试!因为我之前放弃了整合!
我的NT会员2万多,如果每个都转过去比较麻烦,肯定会出现什么不可预料的问题。
有机会可以一起研究一下同时登陆的修改方法。
笨小孩儿 - 2007-4-24 14:07:00


现在因为我是在OBLOG中LOGIN的,为了要同步DISCUZ,所以不得不弄个表单来提交到DISCUZ的LOGIN中,这样用户体验很不好,跳来跳去的.我的想法是这样的:
也不要老大非写出如何用ASP来写加密COOKIES中的PASSWORD,只希望老大写个文件来配合一下就好,让我们可以这样调用:<script src="XXX.asp?uname=XXX&password=XXX"></script>让它默默的执行,这样就不用跳来跳去了,用户体验会更好些

另外,还有一个问题,我用自己的程序写DISCUZNT中的数据库来填加用户,更新两个表:DNT_USERS和DNT_USERFIELDS这都没问题,用户可正常注册,可是,论坛的统计不能同时更新,必须要在后台更新才可以,还望提供个调用接口来实现同步更新,也希望是这样调用:<script src="XXX.asp?uname=XXX&password=XXX"></script>


没有心情 - 2007-4-24 16:03:00
未开源之前我倒不准备继续整合下去了。
没有心情 - 2007-4-26 14:07:00
就这么沉底了?
笨小孩儿 - 2007-4-26 14:40:00
我也在等开源再做新的整合,现在在搞改版尼,嘿嘿

你的方法加上我的登陆就基本上成功了
dreamrise - 2007-4-29 0:20:00
这个贴我会继续跟进的,笨小孩的登陆LOGIN是不是这个帖子:

http://nt.discuz.net/showtopic-13801.html
twoheard - 2007-4-29 9:57:00
先自已造个土炮,等开源了官方给个洋枪!
没有心情 - 2007-5-12 19:15:00
就這麽沉了?
myes - 2007-5-15 2:06:00
:) 我菜鸟一个,下面的名称就需要我花一段时间研究了
  ot_usertable="dv_user" '用户表名
  ot_username="username" '用户名字段
  ot_password="userpassword" '密码字段
  ot_regurl="../bbs/reg.asp" '注册用户链接
  ot_modIfypass1="../bbs/modIfyadd.asp?t=1" '修改密码连接
  ot_modIfypass2="../bbs/modIfyadd.asp?t=1" '修改密码提示问题连接
  ot_lostpasswordurl="../bbs/lostpass.asp" '找回密码链接
笨小孩儿 - 2007-5-15 10:41:00
官方说开源至今也没开,没信心了,一直用跳转的方法,烦死了:Q
hujiewen007008 - 2007-6-3 21:48:00
一个月后的今天,问:现在有整合好的了吗?
1
查看完整版本: 专为"笨小孩儿"建贴!OBLOG整合方法。