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

news/2023/9/22 18:41:21

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

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

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

转载于:https://www.cnblogs.com/amylis_chen/p/4840694.html


https://dhexx.cn/news/show-16913.html

相关文章

java 腐蚀 膨胀_Java+opencv3.2.0之膨胀与腐蚀

腐蚀与膨胀是最基本的形态学操作&#xff0c;它们能够实现多种多样的功能&#xff0c;主要如下&#xff1a;1) 消除噪声2) 分割出独立的图像元素&#xff0c;在图像中连接相邻的元素3) 寻找图像中的明显的极大值区域或极小值区域4) 求出图像的梯度膨胀是求局部最大值的操作。本…

iphone微信美颜插件_iOS 微信 7.0.13 内测,Activator 再次更新

本文支持深色预览说重点&#xff1a;iOS 微信 7.0.13 已内测&#xff0c;主要改进小程序屏蔽特殊符号为主&#xff0c;另外&#xff01;Activator 手势已加入A12/13支持。今天不说手机越狱消息&#xff0c;因为作者们还未更新&#xff1a; unc0ver4.4.0版本未推出checkra1n win…

Java新特性--Stream的全部用法整理

文章目录一、流二、常用方法1、filter(element -> boolean表达式)2、distinct()3、sorted() / sorted((T, T) -> int)4、limit(long n)5、skip(long n)6、map(T -> R)7、faltMap(T -> Stream)8、anyMatch(T -> boolean表达式)9、allMatch(T -> boolean)和non…

ios开发使用Basic Auth 认证方式

http://blog.csdn.net/joonchen111/article/details/48447813 我们app的开发通常有2种认证方式 一种是Basic Auth&#xff0c;一种是OAuth&#xff1b;现在普遍还是使用OAuth的多&#xff0c;而使用Basic Auth认证的少&#xff0c;正好呢我今天给大家介绍的就是使用的比较少的…

python正则_Python正则:工作中常用的python正则代码

1、用户名正则import re# 4到16位(字母&#xff0c;数字&#xff0c;下划线&#xff0c;减号)if re.match(r^[a-zA-Z0-9_-]{4,16}$, "abwc"):print("匹配")别忘了私信小编“学习”获取Python入门基础教程哦&#xff01;2、整数正则import re#正整数正则if …

java邮件服务系统开发的_Java秒杀系统实战系列~开发通用的发送邮件服务

摘要:本篇博文是“Java秒杀系统实战系列文章”的第九篇&#xff0c;在这篇文章中我们将继续完善秒杀系统中的核心处理逻辑&#xff0c;即“用户秒杀~抢单”的业务逻辑&#xff01;本文我们将基于JavaMail服务&#xff0c;开发一个通用的发送邮件服务&#xff0c;用于发送邮件通…

Android 自定义控件——自定义属性

本文介绍在 Android 当中自定义控件使用自定义属性 本文以下图为例进行讲解 如图&#xff1a; 一个圆&#xff0c;我们自定义一个View &#xff0c;以画一个圆为例&#xff0c;以圆的半径、颜色、透明值 作为自定义属性来进行讲解 先定义自定义的View&#xff0c;继承View&am…

3904三极管是什么功能_什么是分立器件?芯片、半导体、集成电路的关系

昨天&#xff0c;我们在文章中讲到&#xff0c;医药概念个股目前已经调整了将近20%&#xff0c;今天再给个大跌10%左右就可以打短&#xff0c;投机一把。目前从收盘上来看&#xff0c;还可以。前期强势的医药概念个股出现了反弹&#xff0c;好几只从跌停大幅拉红&#xff0c;即…

几个字节的数据怎么加密好?_塑料盆圆滑没有边,怎么做好卫生间收纳?教你几个好方法...

塑料盆圆滑没有边&#xff0c;怎么做好卫生间收纳&#xff1f;教你几个好方法哈喽大家好&#xff0c;前两天有朋友说到这个收纳的问题&#xff0c;一个朋友说对于塑料盆的收纳他有妙招&#xff0c;当时我有点好奇&#xff0c;就问了朋友这个问题&#xff0c;朋友说就是在塑料盆…

(转载) css实现小三角(尖角)

在各种网站里面&#xff0c;我们会经常看到类似于这样的尖角&#xff1a;&#xff08;示例&#xff1a;新浪微博&#xff09; 它实现的方式有多种&#xff0c;哪种才是最简单的&#xff1f;哪种才是最优秀的&#xff1f;首先我声明一下&#xff0c;我还不清楚这个东西具体叫什么…