DNT论坛整合笔记二

总算搞定了DNT的不同站点数据同步,
我的程序中使用的是DNT官方的一个叫DiscuzTookit的示例代码中的类库
 
关键是域名那点儿如果是 http://www.xxx.com/ 和 bbs.xxx.com 做整合 那么域名那块儿就直接写
.xxx.com ,因为DNT的数据同步是让 数据以GET 方式提交到 另一个网站的一个页面,
从而在另一个网站下实现相应的操作
 
2010年5月23日17:00:04
 
DNT 论坛整合中文用户名问题
DNT使用的是UTF8编码而网站使用的是GB2312。。
这样在注册的时候从查询字符串中取出的中文用户名将会出现乱码。。
在网上找了个UTF8>GB2312的代码~转换不了
后来想到QueryString中有个UID值 这个值是用户的论坛用户ID
建议在DNT的源码上做点儿修改。。禁止中文注册。。因为不少站点都有一个以用户名
作为用户文件夹名或者泛解析如果用中文就麻烦了。
于是修改注册代码
先利用API根据ID从论坛获取用户对象
再使用取到的DNT用户信息添加到网站数据库
 
2010年5月23日21:25:51
IE8下论坛cookie不过期。。
不知道是不是上面的domain问题。。
但是用Google浏览器可以成功同步
 
ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  QS.Model;
using  Discuz.Toolkit;
using  System.Text;
public   partial   class  logincheck : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
// 限定只能为本服务器上的请求

        
// 注册 Url: { http://192.168.0.200/checkUser.aspx?action=register &password=61a93c18e1b29162e6026b7c8aac4934&time=1274518035&uid=8&user_name=mafeifei222&sig=44435a44cff91f3eec53b7cff0519b8c}
        
//  登录 Query: "?action=login&time=1274520157&uid=6&user_name=mahuihui1&sig=0833f672206b42a34263cd2c60a8bbe9"
        
//  退出 "/checkUser.aspx?action=logout&time=1274520326&uid=-1&sig=c773d340492ca1b0409ff9231b5fef31"


        
#region  编码转换

        
#endregion
        
try
        {
            
string  action  =  Request.QueryString[ " action " ];

            
if  ( ! string .IsNullOrEmpty(action))
            {
                
string  user_name  =  Request.QueryString[ " user_name " ];
                
string  lowerMd5Pwd  =  Request.QueryString[ " password " ];
                
string  sig  =  Request.QueryString[ " sig " ];
                DiscuzSession ds 
=  DiscuzSessionHelper.GetSession();
                tUser user 
=   new  tUser();
                
int  bbsuid  =   0 ;
                Discuz.Toolkit.User bbsuser 
=   null ;
                
switch  (action)
                {

                    
case   " register " : // 注册      
                        bbsuid  =   int .Parse(Request.QueryString[ " uid " ]);
                        bbsuser 
=  ds.GetUserInfo(bbsuid);
                        
if  (bbsuser  !=   null )
                        {
                            user.userName 
=  bbsuser.UserName;
                            user.Password 
=  bbsuser.Password.ToUpper();
                            user.BBS_UID 
=   int .Parse(bbsuser.UId.ToString());
                            user.UserType 
=  QS.Model.UserType.Default;
                            user.regTime 
=  DateTime.Parse(bbsuser.JoinDate);
                            user.lastIPaddress 
=  bbsuser.LastIp;
                            user.lastLoingTime 
=  DateTime.Now;
                            user 
=   new  QS.BLL.tUser().GetModel( new  QS.BLL.tUser().Add(user));
                            
if  (user  !=   null )
                            {
// 网站注销用户

                                SO.bbsLoin(user);
                            }
                        }
                        
break ;
                    
case   " login " : // 登录 
                        user  =   new  QS.BLL.tUser().GetModel( " bbs_uid= "   +  Request.QueryString[ " uid " ]);
                        
if  (user  !=   null )
                        {
// 网站记录用户
                            System.Web.HttpContext.Current.Session[ " user " =  user;
                            System.Web.HttpContext.Current.Session[
" UserName " =  user.userName;
                            
string  ipaddress  =  HttpContext.Current.Request.UserHostAddress;
                            
if  ( ! string .IsNullOrEmpty(ipaddress))
                            {
                                user.lastIPaddress 
=  ipaddress;
                            }
                            QS.BLL.tUser bll 
=   new  QS.BLL.tUser();
                            user.lastLoingTime 
=  DateTime.Now;
                            bll.Update(user);
                        }
                        
break ;
                    
case   " logout " : // 退出
                        HttpContext.Current.Session[ " user " =   null ;
                        HttpContext.Current.Session[
" UserName " =   null ;
                        
break ;
                    
default :
                        
break ;
                }
            }
            
else
            {
                
return ;
            }
        }
        
catch  (Discuz.Toolkit.DiscuzException ex)
        {
            Response.Write(ex.Message);
        }

    }
}

 

 
 

转载于:https://www.cnblogs.com/Qbit/archive/2010/05/23/1741859.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值