您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Asp.Net网站整合Discuz论坛同步注册和单点登录的实现方法
雁玉2025-07-07Discuz教程已有人查阅
导读最近在一个小站中整合了Discuz论坛,查阅了些资料后实现了同步注册和单点登录。 Discuz是以虚拟目录的方式加载网站中,整合Discuz到网站中进行安装要注意一下几个问题:
最近在一个小站中整合了Discuz论坛,查阅了些资料后实现了同步注册和单点登录。 Discuz是以虚拟目录的方式加载网站中,整合Discuz到网站中进行安装要注意一下几个问题:
Discuz所在的目录需要添加NETWORK SERVICE 和IIS_User这两个账户的权限。
Discuz根目录下的DNT.config文件需要修改,将<Forumpath>/</Forumpath>修改为<Forumpath>/BBS/</Forumpath>,BBS为虚拟目录的名称。
由于我网站用了第三方的控件,在webconfig文件中进行了相关设置,然后在访问论坛时提示缺少程序集的引用,后来把第三方控件的dll加到Discuz下的bin目录中得以解决。
下面说说怎样实现同步注册和单点登录 其实在研究后发现很简单,当然我现在做的只是同域的情况下,跨域的情况还没研究,估计也不会很难,应该只是多了一个设置cookieDomain的过程。Discuz给我们提供了一个DiscuzToolkit的工具包,提供了很多API供调用,下面就一步步来吧。 1 安装好Discuz论坛后,进入后台管理,选择扩展-》通行证设置-》添加整合程序设置
应用程序名称:可以随便输入
应用程序Url地址:我填写的是我站点的地址
登录完成后返回地址:同上
2 记下生成的APIKey和密匙,在后面的代码编写中会用到
3 我将APIKey,密匙都配置在了webconfig文件中
APIKey:value值为后台生成的APIKey
Secret:value值为后台生成的密匙
Url:value值为BBS的路径
4 写一个公共的BBSHelper类,将添加用户,登录,改密码等方法封装在里面。注意要引用命名空间Discuz.Toolkit
Discuz所在的目录需要添加NETWORK SERVICE 和IIS_User这两个账户的权限。
Discuz根目录下的DNT.config文件需要修改,将<Forumpath>/</Forumpath>修改为<Forumpath>/BBS/</Forumpath>,BBS为虚拟目录的名称。
由于我网站用了第三方的控件,在webconfig文件中进行了相关设置,然后在访问论坛时提示缺少程序集的引用,后来把第三方控件的dll加到Discuz下的bin目录中得以解决。
下面说说怎样实现同步注册和单点登录 其实在研究后发现很简单,当然我现在做的只是同域的情况下,跨域的情况还没研究,估计也不会很难,应该只是多了一个设置cookieDomain的过程。Discuz给我们提供了一个DiscuzToolkit的工具包,提供了很多API供调用,下面就一步步来吧。 1 安装好Discuz论坛后,进入后台管理,选择扩展-》通行证设置-》添加整合程序设置
应用程序名称:可以随便输入
应用程序Url地址:我填写的是我站点的地址
登录完成后返回地址:同上
2 记下生成的APIKey和密匙,在后面的代码编写中会用到
3 我将APIKey,密匙都配置在了webconfig文件中
APIKey:value值为后台生成的APIKey
Secret:value值为后台生成的密匙
Url:value值为BBS的路径
4 写一个公共的BBSHelper类,将添加用户,登录,改密码等方法封装在里面。注意要引用命名空间Discuz.Toolkit
/// <summary>
/// 同步Discuz论坛帮助类
/// </summary>
public class DiscuzBBSHelper
{
private string _apiKey = string.Empty;
private string _secret = string.Empty;
private string _url = string.Empty;
DiscuzSession _ds;
public DiscuzBBSHelper()
{
_apiKey = ConfigHelper.APIKey();
_secret = ConfigHelper.Secret();
_url = ConfigHelper.Url();
_ds = new DiscuzSession(_apiKey, _secret, _url);
}
/// <summary>
/// 登录
/// </summary>
public void Login(string userName,string pwd)
{
int uid = _ds.GetUserID(userName);
_ds.Login(uid, pwd, false, 100, "");
}
/// <summary>
/// 登出
/// </summary>
public void Logout()
{
_ds.Logout("");
_ds.session_info = null;
HttpContext.Current.Session["AuthToken"] = null;
}
/// <summary>
/// 创建用户
/// </summary>
public void AddUser(string userName,string pwd)
{
_ds.Register(userName, pwd, "", false);
}
/// <summary>
/// 修改密码
/// </summary>
public void ChangePWD(string userName,string oldPWD,string newPWD)
{
int uid = _ds.GetUserID(userName);
_ds.ChangeUserPassword(uid, oldPWD, newPWD, newPWD, "");
}
}
5 在网站需要的地方调用该类中的方法即可,如下:
//同步论坛
DiscuzBBSHelper bbs = new DiscuzBBSHelper();
bbs.Login(username, pwd);
本文标签:
很赞哦! ()
相关教程
图文教程
Discuz<= 7.2 SQL注入漏洞分析
Discuz树大招风已成常态,不过对于其他整站程序何尝不是如此?是否曾记得大明湖畔的PHPCMS和DEDCMS万人破的场景,流行整站程序最重要的还是漏洞的快速响应。0x01 漏洞成因:
discuz模块调用更新流程解析
模板文件中的模块调用控制文件调用模板文件,解析模板文件,取出页面上调用的模块
discuz去掉portal.php的方法
discuz去掉“portal.php”的方法:首先在系统后台的导航设置中将默认的首页设置为“不可用”;然后打开“index.php”并修改内容为“$_ENV['domain']['defaultindex']”即可。
discuz的ecshop的伪静态规则apache+nginx
discuz(nginx): (备注:该规则也适用于二级目录)rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2
相关源码
-
(自适应响应式)HTML5简繁双语电子元器件设备制造Pbootcms模板下载本模板为电子科技设备制造、电子元件生产等高科技企业设计,采用PbootCMS内核开发,具备简繁双语切换功能。模板设计充分考虑了电子科技行业的技术展示需求,能够专业呈现各类电子元器件、电路板、智能设备的参数规格和应用方案。查看源码 -
(PC+WAP)蓝色低碳环保隔断板装修装饰类网站pbootcms源码下载本款基于PbootCMS开发的网站模板为活动隔断板、装修装饰行业打造,特别适合移动隔断、环保隔断、办公分区等产品的展示与推广。查看源码 -
(PC+WAP)红色驾校培训学车在线预约源码下载基于PbootCMS内核开发的驾校培训专用网站模板,深度适配驾驶培训行业展示需求。采用PC与移动端同步响应设计,单一后台统一管理内容数据,更换图文素材后可快速转变为其他行业网站。查看源码 -
(PC+WAP)货物运输快递物流汽车贸易pbootcms模板下载为货运代理、汽车贸易及快递企业设计的全终端适配网站系统,整合运单追踪与车辆展示核心功能模块原生开发的DIV+CSS架构,支持WebP图像压缩技术。查看源码 -
(PC+WAP)化工材料企业环保能源绿色营销型pbootcms模板源码下载本模板为化工材料及环保能源企业设计,采用PbootCMS开发,可展示各类化工产品、环保技术及能源解决方案。查看源码 -
帝国cms大气淘宝客网站源码带手机版带火车头采集本款创意礼物导购网站模板为礼物类电商平台设计,采用清爽简约的界面风格,具备完善的商品导购功能。系统支持在文章攻略中灵活插入商品购买链接,实现内容与电商的结合。查看源码
| 分享笔记 (共有 篇笔记) |
