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浏览器可以成功同步
 
代码
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/p/1741859.html