Discuz!NT3.6与网站整合(操作用户信息)解决方案

先说下我需要解决的场景是:

主站http://h31bt.com需要调用论坛BBS的用户信息,而不是单独再建立一套用户信息,论坛的域名是bbs.h31bt.com,两个不在主机的同一文件目录下,所以需要解决跨域的问题,

特此记录一下如何解决这方面的问题的。

 

下面是我的一个解决办法,没有采用第三方的SDK的方式。

1.将下载编译好的论坛放在服务器上的论坛文件夹下,用bbs.域名访问就可以了。

2.操作主站的ASP.net代码,引入4个DLL到项目中,分别是:

using Discuz.Common;using Discuz.Config;using Discuz.Entity;using Discuz.Forum;

需要拷贝对应的DLL到网站的BIN目录下,然后添加引用;

 

3.操作获取用户信息的一些代码:

            Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();            OnlineUserInfo oluserinfo = Discuz.Forum.OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);            userid = oluserinfo.Userid;            if (userid == -1)                Response.Redirect("http://bbs.h31bt.com/index.aspx");            username = oluserinfo.Username;            UserInfo us = Users.GetUserInfo(userid);            userscore = Users.GetUserExtCredits(userid, 3);

从本地COOKIES里面读取用户 的资料信息,如果查找不到,userid返回-1,直接中转到论坛让用户登录。

 

4.更新用户的积分信息,比较用户编辑了一项内容,需要奖励用户一些积分什么的,需要操作积分信息:

UserInfo us = Users.GetUserInfo(userid);float uss = Users.GetUserExtCredits(userid, 3);Users.UpdateUserExtCredits(userid, 3, 1);//操作论坛的第三项积分,增加积分为1

通过UserInfo用户信息类可以操作用户的积分、等级等信息。

 

5.上面的代码实现还需要设置一些内容才能够保证跨域名的COOKIES的成功;

设置一下config/general.config 将 <CookieDomain/>改为<CookieDomain>domainname.XXX</CookieDomain> 

6.拷贝论坛下面的config文件夹,DNT.config文件到主站的目录文件夹下;

 

7.由于下载源代码使用VS2010编译的成.net4.0框架的程序,导致管理后台如果有HTML语句的时候会报不安全,直接失败,需要修改的地方:

论坛下面的web.config中强制requestValidationMode="2.0"

<httpRuntime requestValidationMode="2.0" maxRequestLength="2097151" executionTimeout="3600"/>

 

 

总结:

1.目前主站已经可以获取到用户积分信息,操作相关的用户类,实现用户登录和注册是没有问题的;

2.由于3.9的原代码没有,所以里面的QQ整合登录代码没有办法使用,很是可惜;

遇到的问题:

1.由于服务器在美国,时差相差13个小时,发现用户注册后,主站获取用户信息总是不成功,返回一1,但过了13个小时后,此用户信息的获取就可以了。

需要分析源代码是否存在时间差的问题;

 2.如果以后论坛架设到另外一台服务器上,需要考虑如何来调用的问题了,如果数据库主站不能访问的话,那就需要考虑其它方法了。

希望大家有此方面经验的话,在此一起讨论交流下,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Discuz!NT具有安全、高效、易用等特点,产品开放源代码下载三年的时间,受到了国内众多ASP.net项目用户的欢迎,成为国内ASP.net社区论坛产品的标杆。Discuz!NT3.1版本全面支持Windowsserver2008R2系统,并且支持集成模式。免费为商业用户提供64位编译版本。Discuz!NT3.1版本为项目用户专门开发了负载均衡、数据库读写分离、分布式缓存和检测工具一系列套件,为超大型社区建设提供了完美的技术解决方案Discuz!NTv3.6.601修复的问题 游客查看附件的样式不正确 编辑器转义了不应转义html代码 图片格式不正确导致官网出现内存不足 invisible=-2的帖子,有主题通知,但是却无法在帖子中看到 主题下沉无法沉到列表最底下 头像上传在子目录下潜在问题 版块/分类设置中,显示模式改为”传统模式“导致版块图标换行 发一个带有flash的主题或回帖,再编辑此贴,上传图片会缺少提示 简洁版页面,没有输出页面编码信息导致乱码 用快捷键发帖出现空白页,刷新正常 搜索页面里鼠标移至楼主名称上点'删除用户7天帖子'失效 后台开启远程附件后没法关闭 login.aspx页面,tab顺序不正确 开启2个web园后,在线时间不增加,排查代码 帖子英文内容导致热点调用被撑开 IE下,如果图片附件过大,导致上传框被遮挡 提示余额不足的样式错误 开启图片点击加载后,简洁版无法看图(点击加载无效) 帖子关闭状态下,依然会出现回帖框 窄版下,公告过长会导致文字遮挡 发帖时在'视频'按钮里插入土豆,优酷等视频无效 首页轮显图的出现错误,很有可能是缩略图方法的问题 附件上传,多了一些不应该出现的文字,而且样式没对齐 在24小时新帖的版块名称长度中设置0前台页面报错 ......

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值