解决Oblog整合SiteFactory后支持中文用户名
在整合SiteFactory和Oblog的时候,发现由于两者所采用的加密方式不一至,导致注册中文用户名时出现如下错误:
oblog46(1):安全码验证未通过!
请仔细阅读论坛帮助文件,确保您有相应的操作权限。
为了让支持中文,我们只有修改Oblog的加密方式,让Oblog采有新的md5加密方式
(注意:对于存在中文密码的用户,可能出现密码不正确)
我们直接使用动网的inc/md5.asp来修改,先复制动网文件:inc/md5.asp
1.将下面//第7行
Privatem_l2Power(30)
DimMd5OLD
改为:
Privatem_l2Power(30)
DimiLength'增加部份
DimMd5OLD
2.将下面//第198行
PublicFunctionMD5(sMessage,stype)
m_lOnBits(0)=CLng(1)
改为:
PublicFunctionMD5(sMessage)
Md5OLD=0
m_lOnBits(0)=CLng(1)
3.将下面//382行
ifstype=32then
MD5=LCase(WordToHex(a)&WordToHex(b)&WordToHex(c)&WordToHex(d))
else
MD5=LCase(WordToHex(b)&WordToHex(c))
endif
改为:
IfiLength=32Then
MD5=LCase(WordToHex(a)&WordToHex(b)&WordToHex(c)&WordToHex(d))
Else
MD5=LCase(WordToHex(b)&WordToHex(c))
EndIf
然后把这个文保存后复盖Obloginc下的md5.asp,其他修改按照整合教程修改。
二、完成上面修改之后,可以实现中文注册,但是登录时可能出现如下问题:
中文用户名在SiteFactory登录成功,在oblog能同步登录。而在Oblog 什么是cms登录成功,在SiteFactory却不能同步登陆。
出现这样的情况主要是中文在url的编码问题。接下来我们还要修改Oblog的登录文件,在Oblog的文件夹下找到Login.asp:
将下面//159行
turl=strUrl&"?syskey="&MD5(UserName&oblog_Key)&"&username="&UserName&"&password="&PassWord&"&savecookie="&CookieDate&"@@@"&turl'修改部份
改为
turl=strUrl&"?syskey="&MD5(UserName&oblog_Key)&"&username="&Server.urlencode(UserName)&"&password="&PassWord&"&savecookie="&CookieDate&"@@@"&turl'修改部份
保存文件即可。