网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(一)

最近做一网站,其中需要挂一论坛,且网站用户要和论坛用户一致。

国内网站挂论坛的,非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

开发包下载后包含内容如下图所示:

bubuko.com,布布扣

可以将三个项目全部包含在你自己的项目中,开发完整后删除WebSample即可。很多操作可以参考WebSample的例子。

现在整合正式开始:网站和论坛部署好后,进行如下操作:

一、论坛中

论坛-》系统设置-》扩展-》通行证设置,

找到“添加整合程序设置”按钮,填写相应信息,如下图:

bubuko.com,布布扣

填写完成后,会生成相应一条记录,如图:

bubuko.com,布布扣

到此论坛的api设置已经完成。

一、网站

将开发包DiscuzToolkit加入网站后,如图,参考

bubuko.com,布布扣

其中上边三个是网站的原有项目,下边三个是开发包中的。

将WebSampleHelper中的DiscuzSessionHelper.cs文件修改一下,如图:

bubuko.com,布布扣

其中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 { }

 登录完成。

原文地址:https://www.cnblogs.com/weekzero/p/3043771.html