asp.net网站和php的discuz单向同步登陆

1.全局 - 注册和访问控制 - 允许新用户注册 关闭;用户-用户栏目 - 栏目列表 关闭
2.更改后台ucenter应用信息,配置config/config_ucenter.php 主要是更改域名;
更改config/config_global.php cookie处设置;uc_client/control/user.php _check_username 注释掉第一个return语句,去掉对用户名的长度限制;数据表用户名的更改(下面);根下handleuser.php的添加;
<?php
$discuz = C::app();
$discuz->init();
//根据用户名判断用户是否在dz中存在
function getuserbyname($username){
$arr = DB::fetch_all("SELECT uid FROM %t WHERE username=%c LIMIT %d", array('ucenter_members', $username, '1'));
return $arr[0];
}
增加config.inc.php,里面放的是dz ucenter应用中心里的配置
3.uc.php 查看自己的csdn,去掉免激活;
在根下增加common_bbs.php 加入以下代码,并在home.php,forum.php,group.php,search.php,portal.php的底部引入(runhook函数下面)
/**begin 单点登陆**/
function isLogin(){
//discuz判断用户是否登录,返回值为true表示用户已经登录
if($auth = getglobal('auth', 'cookie')) {
$auth = daddslashes(explode("\t", authcode($auth, 'DECODE')));
}
if(!empty($auth[0]) && !empty($auth[1])){return true;}
return false;
}
if(!isLogin() && isset($_COOKIE['Z'])){
$af_username = $_COOKIE['Z'];
include './handleuser.php';
@include './config.inc.php';
include './uc_client/client.php';
$af_user = getuserbyname($af_username);

if(empty($af_user)){
$uid = uc_user_register($af_username,'_bbs',$af_username);
if($uid > 0){
$user[0] = $uid;
$user[1] = $user[2] = $af_username;
$time = time();
global $_G;
DB::query("REPLACE INTO ".DB::table('common_member')." SET `uid`='{$user[0]}' , `username`='{$user[1]}' , `password`='".md5(random(10))."' , `email`='{$user[2]}' , `adminid`='0' , `groupid`='10' , `regdate`='{$time}' , `emailstatus`='0' , `credits`='0' , `timeoffset`='9999'");
DB::query("REPLACE INTO ".DB::table('common_member_status')." SET `uid`='{$user[0]}' , `regip`='{$_G['clientip']}' , `lastip`='{$_G['clientip']}' , `lastvisit`='{$time}' , `lastactivity`='' , `lastpost`='0' , `lastsendmail`='0'");
DB::query("REPLACE INTO ".DB::table('common_member_count')." SET `uid`='{$user[0]}' , `extcredits1`='0' , `extcredits2`='0' , `extcredits3`='0' , `extcredits4`='0' , `extcredits5`='0' , `extcredits6`='0' , `extcredits7`='0' , `extcredits8`='0'");
DB::query("REPLACE INTO ".DB::table('common_member_profile')." SET `uid`='{$user[0]}'");
DB::query("REPLACE INTO ".DB::table('common_member_field_forum')." SET `uid`='{$user[0]}'");
DB::query("REPLACE INTO ".DB::table('common_member_field_home')." SET `uid`='{$user[0]}'");
DB::query("UPDATE ".DB::table('common_stat')." SET `register`=`register`+1 WHERE `daytime` = '".date('Ymd', $time)."'");
if(($member = getuserbyuid($uid, 1))) {
require_once libfile('function/cache');
updatecache();
$cookietime = 31536000;
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}
}else{
echo $uid;
}
}else{
$member = getuserbyuid($af_user['uid'], 1);
$cookietime = 31536000;
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}
echo '<script>location.reload(true);</script>';
}
/**end 单点登陆**/
4.template/member/login_simple.htm 头部只留下登陆和注册按钮,点击后跳转到主域名的站点的登陆注册页;去掉退出按钮,default/common/header_userstatus.htm 28行注释;更改帖子页用户名超出时用...显示templace/default/common.css 最后一行添加.authi{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
5.sso实现后,全局站点信息的修改
ALTER TABLE  `pre_common_member` modify  column  `username`  varchar( 64 ) not null default '' unique ;
ALTER TABLE  `pre_ucenter_members` modify  `username`   varchar( 64 ) not null default '' unique ;
ALTER TABLE  `pre_home_blog` modify column  `username`  varchar( 64 ) not null default '' ;
ALTER TABLE  `pre_ucenter_mergemembers` modify column  `username`   varchar( 64) not null default '' ;
ALTER TABLE  `pre_ucenter_feeds` modify  column  `username`   varchar( 64 ) not null default '' ;
ALTER TABLE  `pre_forum_post` modify  column   `author`  varchar( 64) not null default '' ;
ALTER TABLE  `pre_forum_thread` modify column    `author`   varchar( 64 ) not null default '';
ALTER TABLE  `pre_home_album` modify column    `username`   varchar( 64 ) not null default '';
ALTER TABLE  `pre_forum_announcement` modify column    `author`   varchar( 64 ) not null default '';
ALTER TABLE  `pre_forum_groupuser` modify column    `username`   varchar( 64 ) not null default '';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值