立即注册 找回密码

QQ登录

只需一步,快速开始

查看: 5178|回复: 0

[Discuz 通用教程] 安装使用 ASP程序整合UCenter 同步登录退出并解决中文登录的问题

[复制链接]

111

主题

16

回帖

1819

积分

大学四年级

Rank: 6Rank: 6

积分
1819
发表于 2018-6-29 19:02:10 | 显示全部楼层 |阅读模式
道勤网-数据www.daoqin.net

亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先ASP+UC客户端API文档查看:
  1. 用户注册示例 (ASP)Dim register
  2. 'register = uc_user_register("用户名","密码","邮箱","安全提问","问题答案")
  3. register = uc_user_register("admin1","admin888","admin@qq.com","","")
  4. If register > "0" Then
  5.     response.write "注册成功"
  6. ElseIf register = "-1" Then
  7.     response.write "用户名不合法"
  8. ElseIf register = "-2" Then
  9.     response.write "包含要允许注册的词语"
  10. ElseIf register = "-3" Then
  11.     response.write "用户名已经存在"
  12. ElseIf register = "-4" Then
  13.     response.write "Email 格式有误"
  14. ElseIf register = "-5" Then
  15.     response.write "Email 不允许注册"
  16. ElseIf register = "-6" Then
  17.     response.write "该 Email 已经被注册"
  18. ElseIf register = "-7" Then
  19.     response.write "注册信息填写不全"
  20. Else
  21.     response.write "未定义"
  22. End If


  23. 用户登录示例 (ASP)Dim login
  24. 'login = uc_user_login("用户","密码","是否ID登录","是否验证安全问题","安全问题","问题答案")
  25. login = uc_user_login("admin","5201314","0","0","","")
  26. If login(0) > "0" Then
  27.     response.write "登录成功<br>"
  28.     response.write "用户ID:"&login(0)&"<br>"
  29.     response.write "用户名:"&login(1)&"<br>"
  30.     response.write "用户密码:"&login(2)&"<br>"
  31.     response.write "用户邮箱:"&login(3)&"<br>"
  32.     response.write "是否重命名:"&login(4)&"<br>"
  33. ElseIf login(0) = "-1" Then
  34.     response.write "用户不存在,或者被删除"
  35. ElseIf login(0) = "-2" Then
  36.     response.write "密码错"
  37. ElseIf login(0) = "-3" Then
  38.     response.write "安全提问错"
  39. ElseIf login(0) = "-4" Then
  40.     response.write "用户或密码为空"
  41. Else
  42.     response.write "未定义"
  43. End If

  44. 删除用户

  45. 'response.write uc_user_delete("用户ID")
  46. response.write uc_user_delete(2)

  47. 检查用户名示例 (ASP)Dim cname
  48. 'cname = uc_user_checkname("用户名")
  49. cname = uc_user_checkname("admin")
  50. If cname = "1" Then
  51.     response.write "正确"
  52. ElseIf cname = "-1" Then
  53.     response.write "用户名不合法"
  54. ElseIf cname = "-2" Then
  55.     response.write "包含不允许注册的词语"
  56. ElseIf cname = "-3" Then
  57.     response.write "用户名已经存在"
  58. Else
  59.     response.write "未定义"
  60. End If


  61. 用户登录 后的:
  62. response.write uc_user_synlogin(UID)

  63. 完整的实例:

  64. Dim login
  65. 'login = uc_user_login("用户","密码","是否ID登录","是否验证安全问题","安全问题","问题答案")
  66. login = uc_user_login("admin","5201314","0","0","","")
  67. If login(0) > 0 Then '有此用户才登陆
  68.     response.write uc_user_synlogin(login(0))  '获取同步登录代码
  69. ElseIf login(0) = "-1" Then
  70.     response.write "用户不存在"
  71. ElseIf login(0) = "-2" Then
  72.     response.write "密码错误"
  73. Else
  74.     response.write "未定义"
  75. End If
复制代码
如何安装使用这里就不详细描述了,只说几点遇到的问题,因为添加用户、修改密码我是直接用ASP+MYSQL向数据库添加修改数据,所以不知道这个API对添加用户、修改密码有没有问题,这里详细讲同步登录。

1、通信问题

在UC添加应用时通信密钥要和config.inc.asp里写的一样,编写程序时调用config.inc.asp,同步登录需要在是否同步应用里选择是。

2、中文用户无法登录问题

这里给一个简单的同步登录代码,就命名为login.asp吧!

  1. <!--#include file="config.inc.asp"-->
  2. <%
  3. a=uc_user_login("清竹科技", "******", 0, 0, "", "") '登录返回ARRAY数组,详细函数说明见client.asp
  4. '----------------------
  5. '登录判断这里不详细编写,当作登录成功
  6. response.write uc_user_synlogin(a(0),"******") '得到登录ID,打印结果执行JS同步登录
  7. response.write a(1)
  8. response.end
  9. %>
复制代码
接下来是重点,打开client.asp,CTRL+F搜索Function uc_fopen(url,post),在获取远程页面数据的返回结果我们需要进行处理,把二进制结果进行字符串转换。
原函数:
  1. Function uc_fopen(url,post)
  2. Dim Http
  3. Set Http = Server.CreateObject("Msxml2.ServerXMLHTTP")
  4. With Http
  5. .Open "POST",url,False
  6. .SetRequestHeader "Accept","*/*"
  7. .SetRequestHeader "Accept-Language","zh-cn"
  8. .SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
  9. .SetRequestHeader "User-Agent", Request.ServerVariables("HTTP_USER_AGENT")
  10. .setRequestHeader "Host","119.132.83.166"
  11. .SetRequestHeader "Content-Length",Len(post)
  12. .setRequestHeader "Connection","Close"
  13. .setRequestHeader "Cache-Control","no-cache"
  14. .Send post
  15. uc_fopen = .ResponseText
  16. End With
  17. End Function
复制代码
在本函数下方添加一个二进制转换函数
  1. Function bytes2bstr(vin)
  2. On Error Resume Next
  3. Err.Clear
  4. strreturn = ""
  5. For i = 1 To LenB(vin)
  6. thischarcode = AscB(MidB(vin, i, 1))
  7. If thischarcode < &H80 Then
  8. strreturn = strreturn & Chr(thischarcode)
  9. Else
  10. nextcharcode = AscB(MidB(vin, i + 1, 1))
  11. strreturn = strreturn & Chr(CLng(thischarcode) * &H100 + CInt(nextcharcode))
  12. i = i + 1
  13. End If
  14. Next
  15. bytes2bstr = strreturn
  16. End Function
复制代码
添加后,把原函数里的uc_fopen = .ResponseText换成uc_fopen=bytes2bstr(.responsebody)
修改后的完整代码如下:
  1. '================================================
  2. '函数名: uc_fopen
  3. '作 用: 远程打开URL
  4. '参 数: url : 打开的ur
  5. ' post : 要发送的 POST 数据
  6. '返回值: 取到的字符串
  7. '================================================
  8. Function uc_fopen(url,post)
  9. Dim Http
  10. Set Http = Server.CreateObject("Msxml2.ServerXMLHTTP")
  11. With Http
  12. .Open "POST",url,False
  13. .SetRequestHeader "Accept","*/*"
  14. .SetRequestHeader "Accept-Language","zh-cn"
  15. .SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
  16. .SetRequestHeader "User-Agent", Request.ServerVariables("HTTP_USER_AGENT")
  17. '.setRequestHeader "Host","119.132.83.166"  '这行没用,注视掉
  18. .SetRequestHeader "Content-Length",Len(post)
  19. .setRequestHeader "Connection","Close"
  20. .setRequestHeader "Cache-Control","no-cache"
  21. .Send post
  22. uc_fopen=bytes2bstr(.responsebody)
  23. 'uc_fopen = .ResponseText
  24. End With
  25. End Function
  26. Function bytes2bstr(vin)
  27. On Error Resume Next
  28. Err.Clear
  29. strreturn = ""
  30. For i = 1 To LenB(vin)
  31. thischarcode = AscB(MidB(vin, i, 1))
  32. If thischarcode < &H80 Then
  33. strreturn = strreturn & Chr(thischarcode)
  34. Else
  35. nextcharcode = AscB(MidB(vin, i + 1, 1))
  36. strreturn = strreturn & Chr(CLng(thischarcode) * &H100 + CInt(nextcharcode))
  37. i = i + 1
  38. End If
  39. Next
  40. bytes2bstr = strreturn
  41. End Function
复制代码
返回结果:
  1. <script type="text/javascript" src=http://bbs.qzsys.com/api/uc.php?time=1291717078&code=************************** reload="1"></script>
复制代码
即login.asp里response.write uc_user_synlogin(a(0),"******")打印出来的结果,登录成功!
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题! 如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服! 如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

道勤网- 推荐内容!上一条 /2 下一条

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_fhlb! !jz_lxwm! !jz_gfqqq!

关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程【道勤网】 ( 皖ICP备15000319号-1 )

GMT+8, 2024-11-15 00:29

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

快速回复 返回顶部 返回列表