您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz!NT3.6与网站整合操作用户信息的方法
张准辰2025-07-16Discuz教程已有人查阅
导读因为网站要加个论坛,所以就用到了Discuz!NT3.6。可惜目前官方论坛已经关闭,只有3.6版本的有源码,3.9的没有源码,不好操作。
因为网站要加个论坛,所以就用到了Discuz!NT3.6。可惜目前官方论坛已经关闭,只有3.6版本的有源码,3.9的没有源码,不好操作。
先说下我需要解决的场景是:
主站sosobt.com需要调用论坛BBS的用户信息,而不是单独再建立一套用户信息,论坛的域名是bbs.sosobt.com,两个不在主机的同一文件目录下,所以需要解决跨域的问题,
特此记录一下如何解决这方面的问题的。
下面是我的一个解决办法,没有采用第三方的SDK的方式。
1.将下载编译好的论坛放在服务器上的论坛文件夹下,用bbs.域名访问就可以了。
2.操作主站的ASP.net代码,引入4个DLL到项目中,分别是:
3.操作获取用户信息的一些代码:
4.更新用户的积分信息,比较用户编辑了一项内容,需要奖励用户一些积分什么的,需要操作积分信息:
5.上面的代码实现还需要设置一些内容才能够保证跨域名的COOKIES的成功;
设置一下config\general.config 将 <CookieDomain/>改为<CookieDomain>domainname.XXX</CookieDomain>
6.拷贝论坛下面的config文件夹,DNT.config文件到主站的目录文件夹下;
7.由于下载源代码使用VS2010编译的成.net4.0框架的程序,导致管理后台如果有HTML语句的时候会报不安全,直接失败,需要修改的地方:
论坛下面的web.config中强制requestValidationMode="2.0"
1.目前主站已经可以获取到用户积分信息,操作相关的用户类,实现用户登录和注册是没有问题的;
2.由于3.9的原代码没有,所以里面的QQ整合登录代码没有办法使用,很是可惜;
遇到的问题:
1.由于服务器在美国,时差相差13个小时,发现用户注册后,主站获取用户信息总是不成功,返回一1,但过了13个小时后,此用户信息的获取就可以了。
需要分析源代码是否存在时间差的问题;
2.如果以后论坛架设到另外一台服务器上,需要考虑如何来调用的问题了,如果数据库主站不能访问的话,那就需要考虑其它方法了。
先说下我需要解决的场景是:
主站sosobt.com需要调用论坛BBS的用户信息,而不是单独再建立一套用户信息,论坛的域名是bbs.sosobt.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.如果以后论坛架设到另外一台服务器上,需要考虑如何来调用的问题了,如果数据库主站不能访问的话,那就需要考虑其它方法了。
本文标签:
很赞哦! ()
图文教程
ecshop怎么和discuz整合
在做一个电子商务网站,需要在上面挂一个论坛,discuz无疑是较佳的选择,自然就得需要实现ecshop与discuz的同步登陆,否则空挂一个论坛在上面毫无意义。
Discuz!NT各个模块功能说明
Discuz中有24个Project,每个项目各自作为项目架构中的不同的功能。下面我们来各自的分析一下这些项目。(1)DNT中包含的项目(1)Discuz.Web该项目是DNT最终生成网站的项目。
Discuz的nt模板机制
作为产品中的一大特色,模板机制一经推出,就引来了大家特别是站长们的关注。但它所饱受的风风雨雨也成了那时不少人关注的话题。而今天本人将结合在产品组中的开发经历
Discuz! X系列UC_Server本地文件包含漏洞
最近又发现discuz论坛被挂马了,决定好好研究一下discuz的漏洞,技术债始终要还是要还的快要睡觉的时候,突然收到一封邮件,发现服务器上的文件被篡改了,立即登录服务器,清空恶意文件,
相关源码
-
(自适应)蓝色五金制品配件管件pbootcms网站源码下载基于PbootCMS内核开发的五金行业专用模板,采用响应式设计架构,确保产品展示在各类移动设备上的呈现。通过模块化布局与工业风视觉设计,帮助五金企业高效展示产品规格、应用场景及技术支持,建立专业可靠的行业形象。查看源码 -
(PC+WAP)餐饮奶茶美食小吃招商加盟pbootcms模板源码下载为茶饮烘焙、小吃快餐等餐饮品牌打造的招商加盟系统,助力品牌快速拓展市场;双端pc+wap设计呈现加盟政策对比表。支持后台实时更新菜品图片、加盟费用等关键信息。查看源码 -
(自适应)蓝色基建施工工程建筑集团网站pbootcms模板下载为工程建筑、基建施工类企业打造的PbootCMS模板,采用现代化设计理念,突出企业实力与项目展示,帮助建筑类企业快速建立专业在线门户。查看源码 -
(自适应)大气网络公司工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为网络技术服务类企业打造,具备高度可定制性。通过简洁现代的设计语言展现企业专业形象,后台数据实时同步机制确保多终端内容一致性,查看源码 -
(自适应)工业机械制造设备网站pbootcms模板下载为机械制造、工业设备类企业设计,特别适合各类机械设备、生产线、工业自动化产品展示。采用响应式技术,确保在不同设备上都能清晰展示机械产品的技术参数和细节特点。查看源码 -
帝国cms7.5商城模板带图片视频广告位功能本模板基于帝国CMS7.5内核开发,为内容电商平台设计,集成文章、图片、视频多媒体展示与广告位管理功能。采用智能响应式技术,确保商品内容在不同设备上获得较优呈现效果,帮助快速构建专业的内容营销平台。查看源码
| 分享笔记 (共有 篇笔记) |
