总算搞定了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浏览器可以成功同步
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.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);
}
}
}
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);
}
}
}