您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
discuz!nt用户整合实现同步用户密码的方法
念芹2025-07-02Discuz教程已有人查阅
导读最近的项目要跟discuz的论坛进行整合,实现用户同步注册,单点登陆,同步删除用户,同步修改用户密码采用的是discuz!nt
最近的项目要跟discuz的论坛进行整合,实现用户同步注册,单点登陆,同步删除用户,同步修改用户密码采用的是discuz!nt,考虑到.NET比较熟悉,方便进行二次开发。
东西还是自己动脑子的好,别太依赖谷歌了,虽然谷歌帮助很大。首先介绍下我在安装中碰到的一些问题,discuz论坛是安装在网站子目录下。我这里是在独立主机下安装的,为bbs建立虚拟目录,没有新建应用程序池,给他建个应用程序池是另外一种情况
1.dnt.config一定要放在网站根目录
2.discuz的bin文件要复制到网站根目录的bin文件里面
3.如果网站根目录也存在web.config文件,这时候就要把discuz的web.config整合到网站根目录的web.config里面去,这个花费了我很多时间。
web.config整合方法
在<httpModules>节点中增加
4.discuz 2.5config 目录不要放在网站根目录,会出错,网上都说要放在根目录,不知道是什么原因,我放在根目录下就会出错,可能是2.5不用这么做吧。
5.另外在windows server 2003下安装还要注意权限问题,权限问题参考官方的安装文档大家可以看官方的安装文档,一步步按照里面做,一般不会出现什么错误。
官方文档下载地址:官方文档
官方的Discuz!NT常见问题官方的Discuz!NT常见问题安装已经说完了,希望能给大家帮助跟discuz!nt论坛实现用户同步注册,单点登陆用户登陆代码:
我的asp.net 程序到底读哪个web.config文件
a. 在IIS6的模型下,如果在站点myweb 下建立了 bbs虚拟目录,并且为bbs建立的应用程序池,那么bbs下运行的asp.net程序会读取bbs目录下的web.config.如果此时 bbs目录下没有web.config文件,那么程序将检测站点根目录myweb是否存在web.config文件,如果存在则使用其配置,如果不存在就报错啦。
b. 如果bbs不是虚拟目录,或者虽然是虚拟目录但是没有应用程序池,那么程序将读取网站根目录下的web.config文件。
我刚开始做用户整合是在网站根目录下,新建虚拟目录bbs,而且没有给bbs目录新建应用程序池。所以bbs采用的是网站根目录的web.config,这是因为子目录继承了根目录web.config。
所以,我就把bbs的web.config整合进根里面去
但是这样bbs的web.config还是会继承网站根目录的web.config,只要在bbs的web.config里面修改
二:注册
Disucz!NT2.5论坛整合网站,在这过程中,遇到了很多问题。不过在努力下,还是一一解决。
下面是在整合注册中遇到的些问题:
一:会员类的初始化
官网提供的是
论坛在网站目录bbs文件夹下,此处论坛安装好就可。
把论坛目录下的DNT.config,bin文件下的dll文件,config文件夹,cache文件夹复制到网站根目录下。
修改DNT.config的配置,
注册具体代码下载Disucz!NT 2.0用户整合说明文档最近做discuz整合时,碰到了discuz跟我的网站cookie不能跨域传输的问题。
本来cookie是有个domain属性,可以设置域名,但我那个B/S系统是在客户本地用的,没有用域名,只有IP,搞的我很郁闷。
本来加入你的网站是 .abc.com,bbs论坛是bbs.abc.com,你只要设置cookie.domain=.abc.com就可以实现跨域传输了。cookie.domain不能为IP地址啊。郁闷。
后来经同事提点,决定在discuz!NT下新增一个页面,用来进行跳转,只要把用户名,密码传输过去就可以了。在那边做,就不用考虑cookie的域的问题。果然是有经验的和没经验的区别,要多学习啊。
在discuz!nt下新增页面也是有技巧的,要按照他里面的模板引擎来生成新页面,discuz模板引擎很好很强大啊。
东西还是自己动脑子的好,别太依赖谷歌了,虽然谷歌帮助很大。首先介绍下我在安装中碰到的一些问题,discuz论坛是安装在网站子目录下。我这里是在独立主机下安装的,为bbs建立虚拟目录,没有新建应用程序池,给他建个应用程序池是另外一种情况
1.dnt.config一定要放在网站根目录
2.discuz的bin文件要复制到网站根目录的bin文件里面
3.如果网站根目录也存在web.config文件,这时候就要把discuz的web.config整合到网站根目录的web.config里面去,这个花费了我很多时间。
web.config整合方法
在<httpModules>节点中增加
<add type="Discuz.Forum.HttpModule, Discuz.Forum" name="HttpModule" />
类似:
<httpModules>
<add type="Discuz.Forum.HttpModule, Discuz.Forum" name="HttpModule" />
</httpModules>
把discuz NT的web.config节点 <system.webServer>复制到你网站根目录下的web.config里面去OK,整合web.config搞定,就这么简单。4.discuz 2.5config 目录不要放在网站根目录,会出错,网上都说要放在根目录,不知道是什么原因,我放在根目录下就会出错,可能是2.5不用这么做吧。
5.另外在windows server 2003下安装还要注意权限问题,权限问题参考官方的安装文档大家可以看官方的安装文档,一步步按照里面做,一般不会出现什么错误。
官方文档下载地址:官方文档
官方的Discuz!NT常见问题官方的Discuz!NT常见问题安装已经说完了,希望能给大家帮助跟discuz!nt论坛实现用户同步注册,单点登陆用户登陆代码:
public static void Login(string username, string password)
{
try
{
Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
int uid = Users.GetUserID(username);
//论坛用户不存在就注册
if (uid == -1 || !Users.Exists(uid))
{
Regedit(username, password);
uid = Users.GetUserID(username);
}
//删除之前的错误登录信息
LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
//根据积分公式刷新用户总积分
UserCredits.UpdateUserCredits(uid);
//写入用户登录后的cookie
ForumUtils.WriteUserCookie(uid, Utils.StrToInt(DNTRequest.GetString("expires"), -1), config.Passwordkey, DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));
//更新用户之后动作,如不需要可不执行
//OnlineUsers.UpdateAction(olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
//更新该用户之后访问时间
Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());
}
catch
{
}
}
这边这个问题很重要:我的asp.net 程序到底读哪个web.config文件
a. 在IIS6的模型下,如果在站点myweb 下建立了 bbs虚拟目录,并且为bbs建立的应用程序池,那么bbs下运行的asp.net程序会读取bbs目录下的web.config.如果此时 bbs目录下没有web.config文件,那么程序将检测站点根目录myweb是否存在web.config文件,如果存在则使用其配置,如果不存在就报错啦。
b. 如果bbs不是虚拟目录,或者虽然是虚拟目录但是没有应用程序池,那么程序将读取网站根目录下的web.config文件。
我刚开始做用户整合是在网站根目录下,新建虚拟目录bbs,而且没有给bbs目录新建应用程序池。所以bbs采用的是网站根目录的web.config,这是因为子目录继承了根目录web.config。
所以,我就把bbs的web.config整合进根里面去
<httpModules>
<add name="WebbHttpModule" type="Webb.WAVE.Controls.Upload.WebbHttpModule, Webb.WAVE.Controls.Upload"/>
<add type="Discuz.Forum.HttpModule, Discuz.Forum" name="HttpModule" />
</httpModules>
这样是可以整合成功,但是论坛的附件上传功能就用不了啊,因为我加上的
<add type="Discuz.Forum.HttpModule, Discuz.Forum" name="HttpModule" />
跟我原来网站根目录的WebbHttpModule附件上传功能起冲突了后来试用了下方法:
<location path="bbs" allowOverride="false">
<system.web>
<httpModules>
<remove name="WebbHttpModule" />
</httpModules>
<httpHandlers>
<remove verb="*" path="progress.ashx"/>
</httpHandlers>
</system.web>
</location>
但是这样不行,我不知道为什么不行。后来给BBS目录新建了个应用程序池bbs,这样bbs就采用自己的web.config,新建应用程序池的话,bbs就和网站是独立的,不需要把dnt.config,web.config放在根目录。但是这样bbs的web.config还是会继承网站根目录的web.config,只要在bbs的web.config里面修改
<httpModules>
<add type="Discuz.Forum.HttpModule, Discuz.Forum" name="HttpModule" />
<remove name="WebbHttpModule" />
</httpModules>
<httpHandlers>
<remove verb="*" path="progress.ashx"/>
</httpHandlers>
就OK了。二:注册
Disucz!NT2.5论坛整合网站,在这过程中,遇到了很多问题。不过在努力下,还是一一解决。
下面是在整合注册中遇到的些问题:
一:会员类的初始化
官网提供的是
UserInfo __userinfo = new UserInfo();
但是我的网站中也使用到了UserInfo这个类,为了能使用Disucz!NT论坛的,那就必须这样写了
Discuz.Entity.UserInfo __userinfo = new Discuz.Entity.UserInfo();
二:因为自己项目也有BasePage类,但又没法和Disucz!NT的整合到一起,为了代码中有几个必须使用到的参数,就把Disucz!NT中的复制到了网站注册页面中
/// <summary>
/// 当前用户的用户组信息
/// </summary>
protected internal UserGroupInfo usergroupinfo;
/// <summary>
/// 当前用户的用户组ID
/// </summary>
protected internal int usergroupid;
/// <summary>
/// 当前用户的在线表ID
/// </summary>
protected internal int olid;
/// <summary>
/// 在线用户信息
/// </summary>
protected internal OnlineUserInfo oluserinfo;
/// <summary>
/// 当前页面名称
/// </summary>
public string pagename = DNTRequest.GetPageName();
在这里在写下关于配置信息,很重要配置注意:论坛在网站目录bbs文件夹下,此处论坛安装好就可。
把论坛目录下的DNT.config,bin文件下的dll文件,config文件夹,cache文件夹复制到网站根目录下。
修改DNT.config的配置,
<?xml version="1.0"?>
<BaseConfigInfo xmlns:xsi="http:// .w3.org/2001/XMLSchema-instance" xmlns:xsd="http:// .w3.org/2001/XMLSchema">
<Dbconnectstring>Data Source=ip地址;User ID=sa;Password=***;Initial Catalog=数据库名;Pooling=true</Dbconnectstring>
<Tableprefix>dnt_</Tableprefix>
<Forumpath>/bbs/</Forumpath>
<Dbtype>SqlServer</Dbtype>
<Founderuid>1</Founderuid>
</BaseConfigInfo>
config文件夹下的general.config文件,找到 <CookieDomain />修改为<CookieDomain />.zyue.com</CookieDomain> 很重要的。注册具体代码下载Disucz!NT 2.0用户整合说明文档最近做discuz整合时,碰到了discuz跟我的网站cookie不能跨域传输的问题。
本来cookie是有个domain属性,可以设置域名,但我那个B/S系统是在客户本地用的,没有用域名,只有IP,搞的我很郁闷。
本来加入你的网站是 .abc.com,bbs论坛是bbs.abc.com,你只要设置cookie.domain=.abc.com就可以实现跨域传输了。cookie.domain不能为IP地址啊。郁闷。
后来经同事提点,决定在discuz!NT下新增一个页面,用来进行跳转,只要把用户名,密码传输过去就可以了。在那边做,就不用考虑cookie的域的问题。果然是有经验的和没经验的区别,要多学习啊。
在discuz!nt下新增页面也是有技巧的,要按照他里面的模板引擎来生成新页面,discuz模板引擎很好很强大啊。
本文标签:
很赞哦! ()
下一篇:Discuz安装部署教程
相关教程
图文教程
Discuz自定义积分日志的方法
在有些项目中可能会遇到积分相关操作,同时需要将自己的积分操作加入积分日志,整理了一下。积分提现:积分变更的JS浮动提示信息中的文字;
LR实战Discuz开源论坛网页细分图结果分析
续LR实战之Discuz开源论坛项目,之前一直是创建虚拟用户脚本(Virtual User Generator)和场景(Controller),现在,终于到了LoadRunner性能测试结果分析(Analysis)这部分了。
为discuzx2.5添加mp4播放附件的方法
最近要做手机客户端,需要和论坛数据同步,因为iphone和andriod 能都支持的格式是mp3,mp4。所以论坛版块的音视频附件就限制为mp3,mp4格式。论坛本身支持mp3,可mp4不支持
腾讯云搭建Discuz个人论坛的方法
LAMP是Linux、Apache、MySQL和PHP的缩写,是Discuz论坛系统依赖的基础运行环境。我们先来准备LAMP环境安装MySQL使用yum安装MySQL:
相关源码
-
WordPress主题模板JustNews资讯博客类源码V5.2.2JustNews主题针对博客创作、自媒体运营及资讯发布类网站的需求而设计,提供专业的内容展示与管理方案。该主题集成前端用户中心功能,支持用户在前端界面发布和投稿文章,操作流程简洁高效。查看源码 -
(自适应响应式)双语LED照明灯饰灯具外贸网站pbootcms源码下载模板采用响应式设计,能自动适应手机、平板和电脑等多种设备屏幕,确保用户在不同设备上都能获得良好的浏览体验。同一后台管理,数据实时同步,操作简便高效。查看源码 -
帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机本模板基于帝国CMS7.5开发,为情感文学类网站设计。整体风格温馨雅致,布局合理清晰,特别适合建设情书分享、文学作品展示类网站。模板采用响应式设计,能够自动适配各种终端设备。查看源码 -
pbootcms响应式蓝色旅游旅行社pbootcms网站源码下载为旅游公司、旅行社定制的响应式网站模板,聚焦旅游线路展示、景点推荐及预约服务场景。采用PbootCMS内核开发,自适应技术确保PC与手机端数据实时同步查看源码 -
自适应html5二极管LED灯具灯饰类企业网网站模板该PbootCMS内核开发的响应式模板专为LED照明、灯具制造类企业设计,通过HTML5技术实现手机与PC端自适应显示,确保跨设备访问体验一致。企业可快速替换图文内容适配其他工业领域查看源码 -
(响应式)企业管理人力资源服务类pbootcms模板源码下载为人力资源服务及企业管理设计的响应式网站模板,基于PbootCMS内核开发。通过宽屏布局优化岗位展示效果,简洁界面聚焦人才服务核心业务,自适应技术确保在PC端与手机端查看源码
| 分享笔记 (共有 篇笔记) |
