接上篇:网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(二)
网站会员同步登录论坛,密码修改同步登录,但从论坛登录后的会员,网站中也相应同步登录状态,这就需要网站中要了解论坛的cookie信息,并做相应修改,就可以实现了。
具体,在论坛中
论坛-》全局-》注册与访问控制
中的“身份验证Cookie域”输入框中输入“.bubuko.com”
这样检测论坛登录后的cookie如下:
userid=1 password=wXfyrGgpQbknshQ5lZGRR3t4F2kU6EsbYTFutx8NmOYP3k6A2tKmQg%3d%3d tpp=0 ppp=0 pmsound=0 invisible=0 referer=index.aspx sigstatus=0 expires=1440 userinfotips=
根据这些cookie就可以在网站页面中实现论坛登录后同步到网站了
if (!cm.isLogin())//网站会员未登录时,判断是否论坛会员已经登录,如登录就获得登录状态,设置网站的该会员为登录状态 { try { if (Request.Cookies["dnt"] != null && Request.Cookies["dnt"].Values["userid"] != null) { string uid = Request.Cookies["dnt"].Values["userid"].ToString(); string cookieDomain = ".bubuko.com";//你的域名 DiscuzSession ds = WebSampleHelper.DiscuzSessionHelper.GetSession(); Discuz.Toolkit.User user = null; user = ds.GetUserInfo(Convert.ToInt32(uid)); if (user != null) { //设置用户名是【user.UserName】的登录成功状态 } } } catch { } }
这样,网站的登录同步,注册用户同步,修改密码同步和论坛登录同步到网站就都实现了,再就是,论坛中的注册用户和修改密码,可以做一个跳转来实现和网站的数据同步,就是论坛中注册新用户时跳转到网站注册用户的界面,论坛中修改密码跳转到网站的修改密码页面,具体如下:
注册用户时跳转,在register.aspx文件中,添加
//后加,跳转到主站注册 templateBuilder.Append("<script language=\"javascript\" type=\"text/javascript\">window.top.location.href = ’http://www.bubuko.com/reg.aspx’;</"); templateBuilder.Append("script>"); //
大约在
base.OnInit(e); templateBuilder.Capacity = 220000;
代码之后。
修改密码时跳转,在usercpnewpassword.aspx文件中,添加
//后加,跳转到主站注册 templateBuilder.Append("<script language=\"javascript\" type=\"text/javascript\">window.top.location.href = ’http://www.bubuko.com/member/memberpass.aspx’;</"); templateBuilder.Append("script>"); //
大约在
base.OnInit(e); templateBuilder.Capacity = 220000;
代码之后。
至此,网站会员同步论坛会员算是一个完整的解决方案了。
网站整合Discuz!NT论坛三部曲:
1、网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(一)
2、网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(二)
3、网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解(三)