因为网站要加个论坛,所以就用到了Discuz!NT3.6。

可惜目前官方论坛已经关闭,只有3.6版本的有源码,3.9的没有源码,不好操作,下载地址:

http://download.comsenz.com/DiscuzNT/3.6/

先说下我需要解决的场景是:

主站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 == -)
Response.Redirect("http://bbs.h31bt.com/index.aspx");
username = oluserinfo.Username;
UserInfo us = Users.GetUserInfo(userid);
userscore = Users.GetUserExtCredits(userid, );

从本地COOKIES里面读取用户 的资料信息,如果查找不到,userid返回-1,直接中转到论坛让用户登录。

4.更新用户的积分信息,比较用户编辑了一项内容,需要奖励用户一些积分什么的,需要操作积分信息:

UserInfo us = Users.GetUserInfo(userid);
float uss = Users.GetUserExtCredits(userid, );
Users.UpdateUserExtCredits(userid, , );//操作论坛的第三项积分,增加积分为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="" executionTimeout=""/>

总结:

1.目前主站已经可以获取到用户积分信息,操作相关的用户类,实现用户登录和注册是没有问题的;

2.由于3.9的原代码没有,所以里面的QQ整合登录代码没有办法使用,很是可惜;

遇到的问题:

1.由于服务器在美国,时差相差13个小时,发现用户注册后,主站获取用户信息总是不成功,返回一1,但过了13个小时后,此用户信息的获取就可以了。

需要分析源代码是否存在时间差的问题;

2.如果以后论坛架设到另外一台服务器上,需要考虑如何来调用的问题了,如果数据库主站不能访问的话,那就需要考虑其它方法了。

希望大家有此方面经验的话,在此一起讨论交流下,谢谢。

Discuz!NT3.6与网站整合(操作用户信息)解决方案的更多相关文章

  1. 网站论坛同步用户,整合api,实现…

    在网上参考了很多资料后,终于完美实现了网站和discuz!nt论坛的双向整合,整合后网站和论坛之间可以同步注册.登录.退出和修改登录密码操作. 本系统的实现形式是新云CMS网站(ASP)和Discuz ...

  2. discuz论坛与其它网站登录注册整合

    discuz论坛与其它网站登录注册整合 本文以discuz 7.0.0 php版本的论坛与 .net 2.0的网站注册登录整合为类.没有采用uc_center或第三方插件.以另类的方式实现.此方法实现 ...

  3. MVC5 网站开发之七 用户功能 1、角色的后台管理

    角色是网站中都有的一个功能,用来区分用户的类型.划分用户的权限,这次实现角色列表浏览.角色添加.角色修改和角色删除. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 ...

  4. MVC5 网站开发之七 用户功能 2 用户添加和浏览

    目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架 ...

  5. MVC5 网站开发之七 用户功能 3用户资料的修改和删除

    这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了.主要用到两个action "Modify"和& ...

  6. Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库

    概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...

  7. web网站如何获取用户的地理位置

    web网站如何获取用户的地理位置 一.总结 一句话总结:通过gps知道用户的经度和纬度,然后通过经度和纬度在在地图(google或者百度)上面显示位置. 1.html5如何通过gps知道用户的经度和纬 ...

  8. SharePoint2013网站添加切换用户登录

    不知道大家发现没,sharepoint2013的网站集下面没有了切换用户登陆这个选项卡,这对于我们有时候要做一些权限性的实验是不太方便的,今天我找到了一个办法解决,又实际应用了一下,感觉不错,特地来和 ...

  9. 基于jsp+servlet图书管理系统之后台用户信息查询操作

    上一篇的博客写的是插入操作,且附有源码和数据库,这篇博客写的是查询操作,附有从头至尾写的代码(详细的注释)和数据库! 此次查询操作的源码和数据库:http://download.csdn.net/de ...

随机推荐

  1. php读取mysql中文数据出现乱码

    1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了:    解决方法:选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示. ...

  2. 转:实体ToolTip显示XData

    首先要说明,实现方式不是我的原创,其中ToolTip的实现转自这里,然后XData的设置和获取来自Kean的博客,当然我自己也做了点研究,在这里,然后把这两个技术结合起来就是你将要看到的东西. 先上效 ...

  3. C# 新特性 dynamic的使用及扩展

    个人而言感觉C#的dynamic是一个特别实用的东西,为日常开发工作中的封装,数据传递等带来了很高的可扩展性. C#4.0中通过对数据类型后期绑定的支持,演化出了dynamic.任何直接声明为这种类型 ...

  4. 解决$_REQUEST['name']Undefined问题

    最近按照w3school一步一步学php,当学到$_REQUEST的时候,依旧按照w3cshool所提供的代码自己手敲了一遍,代码如下: <html> <body> <f ...

  5. 如何加密android apk

    经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blo ...

  6. JS与C#编码解码

    escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@ ...

  7. 20141017--类型String类

    Console.Write("请输入您的身份证号"); string x=Console.ReadLine();//小string是大String的快捷方式 int i = x.L ...

  8. UI1_UISlider与UISegment

    // // ViewController.m // UI1_UISlider与UISegment // // Created by zhangxueming on 15/7/7. // Copyrig ...

  9. 方法:一个简单的读取配置文件.properties的工具类 JAVA

    import java.util.ResourceBundle; public class ConfigHelper { private static ConfigHelper instance; p ...

  10. [zz] Install VSFTP

    The first two letters of vsftpd stand for "very secure" and the program was built to have ...