📄 pp_dederemote_interface.asp
字号:
<%
'--------------------------------------
'本文件用于第三方系统反向整合DedeCms在相关程序调用的接口
'调用本文件的接口函数前必须不能输出任何字符
'使用本接口的系统必须引用md5及base64编码算法(DVBBS里的inc/md5.asp、inc/base64.asp)
'--------------------------------------
Dim cfg_cookie_encode,domain,DedeAPI_Url,cfg_loginJumpUrl,cfg_regJumpUrl,cfg_editJump,cfg_exitJump
'这里请填写DedeCms系统的cookie加密码
cfg_cookie_encode = ""
'Cookie主域名(用 "abc.com" 形式,不要加主机名)
'如你的论坛为 bbs.abc.com 主站为 www.abc.com
'那么域名应该是 abc.com ,论坛的主域名和主站的主域名必须是相同的,否则将无法登陆
domain = "dedecms.com"
'DedeCms通行证接口网址
'如果程序装在根目录,一般为 http://www.abc.com/member/passport/pp_dederemote_asp.php
'如果你不想让人知道dedecms这个接口(pp_dederemote.php)的真实网址,你也可以把它改其它名称
DedeAPI_Url = "http://www.dedecms.com/member/passport/pp_dederemote_asp.php"
'登录成功后跳转的网址 (空按第三方系统默认)
cfg_loginJumpUrl = "/member/index.php"
'注册成功后跳转的网址 (空按第三方系统默认)
cfg_regJumpUrl = "/member/index.php"
'更改资料成功后跳转的网址 (空按第三方系统默认)
cfg_editJump = ""
'退出后跳转到的网址 (空按第三方系统默认)
cfg_exitJump = ""
'----------------------------------
'第三方系统与Dedecms系统同步注册、登录、更改密码、退出接口函数
'SynchDedeCms($userid,$action,$userpwd="",$kptime="36000",$newuserpwd="",$email="",$sex="",$uname="")
'参数说明
'-------------------------
'userid 用户登录的用户名,必须
'action 动作,必须,选项为:reg edit login exit test(测试用户ID是否存在)
'userpwd="" 注册(reg)或登录(login)时必须使用
'kptime="36000" cookie保存时间,单位为秒
'newuserpwd="" 新密码,修改密码时必须使用
'email="" Email 注册时选用
'sex="" 性别,男或女 注册时选用
'uname="" 用户昵称,注册时选用,空则用 $userid
'返回值:
'返回字串前三位为OK!表示操作成功
'返回其它则是错误提示
'--------------------------
Function SynchDedeCms(userid,action,kptime)
Dim cpath,keys,querystr,v,signstr,headerStr,rcdata,okdata,okGoUrl
Dim headerStrs
Dim kys
Dim ls
Dim ds
if kptime="" then kptime = 1
Set ds = CreateObject("Scripting.Dictionary")
ds.Add "userid",userid
ds.Add "action",action
ds.Add "kptime",kptime
if domain<>"" then
cpath = ""
else
cpath = "/"
end if
keys = Array("userid","action","kptime")
querystr = ""
For Each v In keys
if ds(v)<>"" then
querystr = querystr & v & "=" & Server.UrlEncode(ds(v)) & "&"
end if
Next
signstr = Left(MD5(userid & cfg_cookie_encode,32),24)
querystr = querystr & "signstr=" & signstr
okGoUrl = DedeAPI_Url & "?rmdata=" & Server.UrlEncode(querystr)
rcdata = GetRmData(okGoUrl)
if Len(rcdata) < 3 then
SynchDedeCms = ""
end if
if Left(rcdata,3) = "OK!" then
okdata = Replace(rcdata,"OK!","")
'Response.Write rcdata
'Response.End
If okdata<>"" then
headerStr = Trim(okdata)
PutCookie "DedeUserID",headerStr,kptime,cpath,domain
PutCookie "DedeUserIDckMd5",left(MD5(cfg_cookie_encode & headerStr,32),16),kptime,cpath,domain
End If
SynchDedeCms = "OK"
else
SynchDedeCms = rcdata
end if
End Function
Function GetRmData(surl)
Dim xHttp
set xHttp = Server.CreateObject("microsoft.xmlhttp")
xHttp.open "GET",surl,false
xHttp.send()
GetRmData = xHttp.responseText
End Function
'按默认参数设置一个Cookie
Sub PutCookie(key,svalue,kptime,pa,dm)
if pa = "" then pa = "/"
svalue = trim(svalue)
Response.Cookies(key) = svalue
Response.Cookies(key).Expires = Date+kptime
if dm <> "" then
Response.Cookies(key).Domain = dm
end if
Response.Cookies(key).Path = pa
End Sub
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -