Discuz!NT3.6与网站整合(操作用户信息)解决方案

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

主站http://h31bt.com需要调用论坛BBS的用户信息,而不是单独再建立一套用户信息,论坛的域名是bbs.h31bt.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 == -1)                Response.Redirect("http://bbs.h31bt.com/index.aspx");            username = oluserinfo.Username;            UserInfo us = Users.GetUserInfo(userid);            userscore = Users.GetUserExtCredits(userid, 3);

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

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

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

总结:

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

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

遇到的问题:

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

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

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

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

时间: 2024-11-06 08:04:31

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

【CURL】模拟登录网站并获取用户信息

模拟登录网站并获取用户信息 前言 这次来做的是通过代码的方式,模拟登录秒拍官网,获取登录用户的信息. 前后端分离 本文的标题是CURL,传统的网站是PHP代码直接渲染项目视图,通过表单提交到控制器直接进行数据操作. 传统模拟登录的方式在页面上找到表单元素,直接进行模拟表单提交. 近两年前端技术趋于完善,实现了前后端分离. 分析页面元素 秒拍官网地址 http://www.miaopai.com/ 通过审查元素以及源代码查找,在本页面并没有form标签,由此推断页面是通过js进行提交的. 查找提交

ASP.NET MVC单点登录(多站点共享用户信息)

一.多站点共享用户信息解决方案: 采用分布式缓存Memcache模拟Session进行用户信息信息共享 1.视图部分 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>XX商城后台管理系统登录</title> <script type="text/javascript"> if (window.parent.window != window) { wi

方案优化:网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息

上一篇  <网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息> 中已经实现用户扫码登陆网站并获取其信息 但是上一篇方案中存在一个问题,也就是文章末尾指出的可以优化的地方(可以点击这个链接去看一下上篇文章) 首先回顾一下上一篇的思路: 1,微信的系统,提供生成带参数的二维码的接口,这个参数就是唯一值(场景值)  2,网站调用微信系统,获取生成的二维码图片  3,用户扫码会直接调用微信服务器,将用户访问微信服务器的信息记录到redis,key就是唯一值(场景值)  4,网站端做轮训去查询

ASP.NET整合Discuz!NT3.5实例说明(含用户登录、评论等)

http://bbs.51aspx.com/showtopic-30029.html#230540 前一阵想做一个团购导航网站,看到某些团购导航站都有论坛,自己也想加一个,研究了下Discuz!NT,发现有API接口,就忽然想到了用Discuz!NT来整合网站,岂不是很方便,会员那部分就不需要自己开发了. 说干就干,下来API的例子和开发包研究了一下,看了一遍仍然是一头雾水,不知道是不是自己太笨.而且发现API还有错误,来官方论坛求助貌似没有得到回答,看来还是只能靠自己啊.看了N遍终于明白了大概

用户停留网站无操作,一定时间后自动退出

1.一般页面 function checkUserFun(){ var maxTime = 2*60*60; // seconds (2小时) var time = maxTime; $('body').on('keydown mousemove mousedown click scroll', function(e){ time = maxTime; // reset }); var intervalId = setInterval(function(){ time--; if(time <=

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

角色是网站中都有的一个功能,用来区分用户的类型.划分用户的权限,这次实现角色列表浏览.角色添加.角色修改和角色删除. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架构 MVC5 网站开发之六 管理员 1.登录.验证和注销 MVC5 网站开发之六 管理员 2.添加.删除.重置密码.修改密码.列表浏览 MVC5 网站开发之七 用

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

概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibernate使用方便,配置响应的XML文件即可.由于spring3.x,基于asm的某些特征,而这些asm还没有用jdk8编译,所以采用Spring 3+JDK8就会报错,提示错误信息( java.lang.IllegalArgumentException),具体解决方案有:1.Spring 3+JDK7

JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 这个稍微比上个版本做得完善了一点,用了JavaBean来封装用户信息,添加了一个管理踢用户的功能. 上一个的用户访问量是通过监听request来统计的,在这个实例中,我们也可以通过过滤器来实现统计网站访问量. 直接看源码吧,感觉没多少要讲的,我习惯把解释写在代码中. 部分源码 index.jsp: <%@ page language="java" import=&

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

这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了.主要用到两个action “Modify”和“Delete”. 目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架构 MVC5 网站开发之六 管理员 1.登录.验证和注销 MVC5 网站开发之六 管理员 2.添加.删