最近做一网站,其中需要挂一论坛,且网站用户要和论坛用户一致。
国内网站挂论坛的,非Discuz莫属,网站是asp.net的,所以论坛就选择了Discuz!NT3.6。
Discuz!NT下载地址:http://nt.discuz.net/showtopic-140676.aspx
更多Discuz!NT信息在官网论坛,地址:http://nt.discuz.net/
更多Discuz!NT整合信息:http://nt.discuz.net/integration/
更多Discuz!NT的API信息:http://nt.discuz.net/API/
本文提到的整合是借助官方提供的开发包DiscuzToolkit来实现的,大部分的网站整合论坛都可借助该开发包轻松实现。
DiscuzToolkit开发包下载地址:http://download.comsenz.com/DiscuzNT/src/DiscuzToolkit.zip
开发包下载后包含内容如下图所示:
可以将三个项目全部包含在你自己的项目中,开发完整后删除WebSample即可。很多操作可以参考WebSample的例子。
现在整合正式开始:网站和论坛部署好后,进行如下操作:
一、论坛中
论坛-》系统设置-》扩展-》通行证设置,
找到“添加整合程序设置”按钮,填写相应信息,如下图:
填写完成后,会生成相应一条记录,如图:
到此论坛的api设置已经完成。
一、网站中
将开发包DiscuzToolkit加入网站后,如图,参考
其中上边三个是网站的原有项目,下边三个是开发包中的。
将WebSampleHelper中的DiscuzSessionHelper.cs文件修改一下,如图:
其中apikey对应api key,secret对应api的密钥,url是论坛的地址,如 url = "http://bbs.bubufx.com";
在网站的web项目中添加DiscuzToolkit和WebSampleHelper的引用。
实现网站会员登录,同步登录论坛的相应用户,代码如下:
using Discuz.Toolkit;//顶部增加引用 try { string cookieDomain = ".bubuko.com";//你的域名 DiscuzSession ds = WebSampleHelper.DiscuzSessionHelper.GetSession(); Discuz.Toolkit.User user = null; if (user == null || user.UserName != loginnameStr) { int uid = ds.GetUserID(loginnameStr); if (uid > 0) { ds.Login(uid, loginpassStr, false, 10000, cookieDomain); } } } catch { }
登录完成。
网站整合Discuz!NT论坛三部曲:
1、网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(一)
2、网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(二)
3、网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(三)