SiteFactory版本整合动网asp版本论坛操作时,因为两者对中文MD5加密方式有所不同,所在整合可能存在以下问题:
1,取回密码答案里如果存在中文问题,那就可能出现问题!
整合方法:
1,环境说明:
论坛程序安装在SiteFactory网站目录下
2,修改动网md5加密码文件:
Inc/md5.asp
Public Function MD5(sMessage,stype) //198 行
Md5OLD=0
m_lOnBits(0) = CLng(1)
……
3,修改动网接口文件 dv_dpo.asp
原
—————————————
'用户登陆 //277 行
'Password = Md5(Password,16)
TruePassWord = Dvbbs.Createpass
….
———————————————–
改成
——————————————
'用户登陆
If Len(Password)=32 Then
Password=Mid(Password,9,16)
Else
If Len(Password)<>16 Then
Password=Md5(Password,16)
End IF
End IF
TruePassWord = Dvbbs.Createpass
..
————————————-
4,配置整合文件:
动易SF API.config
<?xml version="1.0" encoding="gb2312"?>
<Config>
<APISettings>
<Item>
<Name>API_Enable</Name>
<Value>true</Value>
</Item>
<Item>
<Name>API_Key</Name>
<Value>mydvbbs</Value>
</Item>
<Item>
<Name>API_Timeout</Name>
<Value>10000</Value>
</Item>
<Item>
<Name>API_Urls</Name>
<Value>http://lzw.me/bbs/dv_dpo.asp</Value>
</Item>
</APISettings>
</Config>
动网: dv_dpo /Api_Config.asp
'================================================================================================
'多系统整合设置
'================================================================================================
'DvApi_Enable 是否打开系统整合(默认闭关: False ,打开:True )
Const DvApi_Enable = True
'DvApi_SysKey 设置系统密钥 (系统整合,必须保证与其它系统设置的密钥一致。)
Const DvApi_SysKey = "mydvbbs"
'DvApi_Urls :整合的其它程序的接口文件路径。多个程序接口之间用半角"|"分隔。
'例如:DvApi_Urls = "http://你的网站地址/博客安装目录/oblogresponse.asp|http://你的网站地址/动易安装目录/API/API_Response.asp"
Const DvApi_Urls = "http://lzw.me/API/API_Response.aspx"
%>
到此整合配置完成.
整合测试:
动易SF登陆
刷新动网论坛
————视频演示下载: 整合录像
常见问题:
问题1:动网修改 邮箱 但不能同步?
动网asp版的接口中只同步了这几个参数:
'—————————————————————–
'系统整合
'—————————————————————–
Dim DvApi_Obj,DvApi_SaveCookie,SysKey
If DvApi_Enable Then
'SysKey = Md5(DvApi_SysKey&Dvbbs.MemberName,16)
Set DvApi_Obj = New DvApi
DvApi_Obj.NodeValue "syskey",SysKey,0,False
DvApi_Obj.NodeValue "action","update",0,False
DvApi_Obj.NodeValue "username",Dvbbs.MemberName,1,False
Md5OLD = 1
SysKey = Md5(DvApi_Obj.XmlNode("username")&DvApi_SysKey,16)
Md5OLD = 0
DvApi_Obj.NodeValue "syskey",SysKey,0,False
DvApi_Obj.NodeValue "password",Request.Form("psw"),1,False
If Request.Form("answer")<>Request.Form("oldanswer") and Request.Form("answer")<>"" Then
DvApi_Obj.NodeValue "answer",Request.Form("answer"),1,False
End If
DvApi_Obj.NodeValue "question",Request.Form("quesion"),1,False
DvApi_Obj.SendHttpData
If DvApi_Obj.Status = "1" Then
Response.redirect "showerr.asp?ErrCodes="& DvApi_Obj.Message &"&action=OtherErr"
End If
Set DvApi_Obj = Nothing
End If
'—————————————————————–
即同步 取回密码问题 和 问题答案,
所以要同步其他,即需要更改相关设置
问题2: 登陆Cookie保存不相同?
这是因为动网asp 版与.net版的区别.
Asp版
<select name="CookieDate" tabindex="7"><option value="0">不保存</option><option value="1">保存一天</option><option value="2" selected="selected">保存一月</option><option value="3">保存一年</option></select>
参数用 0 1 2 3
.net 版
<select name="savedays" ID="savedays" tabindex="4">
<option value="-1">不保存,关闭浏览器就失效</option>
<option value="1">保留一天</option>
<option value="30">保留一月</option>
<option value="365">保留一年</option>
</select>
用 -1 1 30 365
因此为了与.net版接合,只按动网的.net接口.
要修复这个问题.即需要修改动网 asp版的一些代码.
文件: dv_dpo.asp
————————————————- 250 行
Select case SaveCookie
case 0
Response.Cookies(Dvbbs.Forum_sn)("usercookies") = SaveCookie
case 1
Response.Cookies(Dvbbs.Forum_sn).Expires=Date+1
Response.Cookies(Dvbbs.Forum_sn)("usercookies") = SaveCookie
case 2
Response.Cookies(Dvbbs.Forum_sn).Expires=Date+31
Response.Cookies(Dvbbs.Forum_sn)("usercookies") = SaveCookie
case 3
Response.Cookies(Dvbbs.Forum_sn).Expires=Date+365
Response.Cookies(Dvbbs.Forum_sn)("usercookies") = SaveCookie
End Select
问题3: 动易SF 注册后(如果设置了注册完转到设置支付密码的),注册完成后,动网那边没有登陆?
这个对于动网.net 的整合也会出现这个问题.
因为转跳页面那没有把参数传过去..
这个也与注册时设置有关,因为有多种可性,所以没有在注册完成后所有页面设置登陆字符串.
相关代码
if (SiteConfig.ShopConfig.IsPayPassword) //这里是否设置支付密码
ResponseRedirect("RegisterPayPassword.aspx"); //这里转跳,没有显示登陆字符串.
else
WriteSuccessMsg("<li>注册成功!" + regCompanyMsg + "</li>"+outstring, "Default.aspx"); //outstring 为整合登陆字符串