zoukankan      html  css  js  c++  java
  • 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);
            }

        }
    }
     
     
  • 相关阅读:
    Mac上的USB存储设备使用痕迹在新版操作系统有所变化
    Beware of the encrypted VM
    A barrier for Mobile Forensics
    Second Space could let suspect play two different roles easily
    Take advantage of Checkra1n to Jailbreak iDevice for App analysis
    Find out "Who" and "Where"
    Where is the clone one and how to extract it?
    Downgrade extraction on phones running Android 7/8/9
    高版本安卓手机的取证未来
    How to extract WeChat chat messages from a smartphone running Android 7.x or above
  • 原文地址:https://www.cnblogs.com/Qbit/p/1741859.html
Copyright © 2011-2022 走看看