如何在其他系统中链接的Discuz,实现单点登录

如何在其他系统中链接的Discuz,实现单点登录,第1张

经过研究,重写实现了一个可以在不同2版本中实现单点登录的简 单方法。 1,共用登陆页代码实现: 复制代码 代码如下: protected void btnLogin_Click(object sender, EventArgs e) { //认证开票,跳转到原始请求页面 System"/> </authentication> <!--验证算法--> <machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" decryption="3DES" /> <compilation debug="true"/> 这里:authentication/forms节点最重要的两个属性是name和protection版本的,这里的加密/解密不要使用md5 <machineKey decryptionKey="8B6697227CBCA902B1A0925D00FAA00B353F2DF4359D2099" validation="MD5" validationKey="282487E295028E59B8F411ACB689CCD6F39DDD2146055A3EE480424315994760ADF21B580D8587DB675FA02F7916813044E25309CCCDB647174D5B3D0DD9141"/> 3,没有登录页的单点登录不需要代码 直接配置就可以了,配置如下 复制代码 代码如下: <authorization> <deny users=""/> </authorization> <authentication mode="Forms"> <forms name="/Login"/> </authentication> 4,登录模块从定向代码封装在httpModules中供其他系统直接调用,这里附上封装代码与引用方法: 复制代码 代码如下: public class SsoLoginRedirectModule : IHttpModule { public void Init(HttpApplication i_application) { // TODO: Add UploadModuleInit implementation i_applicationEndRequest += new EventHandler(i_application_EndRequest); } void i_application_EndRequest(object sender, EventArgs e) { if ((HttpContextCurrentResponseStatusCode == 302) && HttpContextCurrentResponseRedirectLocationContains(FormsAuthenticationLoginUrl)) { HttpContextCurrentResponseRedirectLocation = FormsAuthenticationLoginUrl + "ReturnUrl=" + HttpUtilityUrlEncode(HttpContextCurrentRequestUrlOriginalString); } } public void Dispose() { //throw new NotImplementedException(); } } 引用:  复制代码 代码如下: <httpModules> <add name="SsoModule" type="SsoModuleSsoLoginRedirectModule, SsoModule"/> </httpModules>

同步太麻烦,可以将Discuz! NT 转换为Discuz! X25。

Discuz论坛有相关教程,如“Discuz! NT 30、31、35、36、39版本转换到 Discuz! X25版本教程

”。

在某些网络环境和系统环境下,应用中心检测不到用户是在Discuz!管理中心加载的应用中心页面(它认为是浏览器某个标签上单独打开的应用中心页面,而不是某个网站的后台加载的),因此应用中心的右上角不出现“QQ未绑定”或者“注册”这种链接,只显示“使用QQ登陆”,即使出现“注册”这个链接,点击后也会变成让你登陆的页面,所以照它的提示做下去就是一个死循环。这才是新手经常发帖反馈“此QQ帐号还未绑定任何站点,无法登录”的真正原因,解决办法超级简单的:换一台跟你不是同一个局域网内的电脑,再登陆你网站后台进入应用中心,右上角就会出现“注册”按钮,进去之后要填网站信息、还有QQ绑定,填完之后就OK了,如果还不行就多试几台电脑,总有一个是可以的

看discuz用户登录采用的什么方式, cookies还是session 还是服务器缓存等等

自己用户登录时采用相应的方法就行。

或者把discuz中的登录代码在自己的网站中执行一遍,当然,你的用户数据相应在discuz中的用户表中存在

或许你和discuz共用用户表也行

这些不是都通过uc整合的吗?

1、用户注册

$uid = uc_user_register($_POST['username'], $_POST['password'], $_POST['email']);

if($uid <= 0) {

if($uid == -1) {

echo '用户名不合法';

} elseif($uid == -2) {

echo '包含要允许注册的词语';

} elseif($uid == -3) {

echo '用户名已经存在';

} elseif($uid == -4) {

echo 'Email 格式有误';

} elseif($uid == -5) {

echo 'Email 不允许注册';

} elseif($uid == -6) {

echo '该 Email 已经被注册';

} else {

echo '未定义';

}

} else {

echo '注册成功';

}

2、登陆

list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);

if($uid > 0) {

echo '登录成功';

} elseif($uid == -1) {

echo '用户不存在,或者被删除';

} elseif($uid == -2) {

echo '密码错';

} else {

echo '未定义';

}

3、这个可以修改模板。templates/default/headerhtm

此文件中有id为umenu的div标签,即网页头部导航菜单

4、同样可以修改模板。templates/default/personal_navbarhtm

补充回答:

你真的要好好看ucenter的开发指南了。

5、用户发送信息

uc_pm_send(integer 发送者uid/用户名 , string 接收者uid , string 主题 , string 内容 [, bool instantly , integer 回复信息id , bool 发送者是否根据用户名])

6、具体要看你登录代码。

如选择cookies记录信息。:

list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);

if($uid > 0) {

setcookie('username', $username, 24 3600);//保留1天

setcookie('password', $password, 24 3600);

echo '登录成功';

} elseif($uid == -1) {

echo '用户不存在,或者被删除';

} elseif($uid == -2) {

echo '密码错';

} else {

echo '未定义';

}

登录代码如果你是这样写的话,那么就可以通过判断$_COOKIE['username'],$_COOKIE['password']是否已定义来判断用户登录。

下载Discuz!社会化登录插件

discuz!X15插件  插件版本:11  更新时间:2011年6月1号  点击下载

discuz!X2插件  插件版本:11  更新时间:2011年6月1号  点击下载

discuz!72插件  插件版本:10  更新时间:2011年4月16号  点击下载

discuz!X15插件  Demo网站演示  http://demodenglucc/Discuz_X15/forumphp

discuz!X2插件  Demo网站演示  http://demodenglucc/Discuz_X20/forumphp

discuz!72插件  Demo网站演示  http://demodenglucc/Discuz72/

产品介绍

1

广泛的社会化媒体登录入口

灯鹭Discuz!插件支持QQ、新浪微博、人人网、开心网、豆瓣、谷歌、雅虎、支付宝、淘宝、网易、腾讯微博、搜狐微博、MSN,天涯,百度15家媒体帐号登录到您的网站。

2

登录同步获取用户资料

论坛可以获得用户的用户名、头像、性别、年龄、所在地等信息。在用户首次登录时,同步到用户的个人中心。

 

3

同步内容到合作媒体网站

可以在发帖和日志的同时,发布一条新鲜事或者微博到合作媒体网站。可以同步至QQ空间、腾讯微博、新浪微博、人人网、网易微博、搜狐微博。

4

绑定Discuz论坛帐号

合作媒体帐号可以绑定Discuz论坛帐号,以及解除绑定。网站主可以在Discuz后台控制绑定权限,用户绑定论坛帐号,不仅可以使用论坛帐号方便登录,依然可以使用同步内容到合作媒体网站功能。

同一IP登录论坛,会出现这种情况的。

因为同一IP使用5次错误后封闭

仔细想想是不是,需要修改程序,打开loggingphp文件去掉

loginfailed($loginperm);

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在其他系统中链接的Discuz,实现单点登录

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情