手把手教你去除Discuz!NT的Cookie的加密,方便ASP程序整合

[复制链接]
查看: 1320   回复: 0
发表于 2007-8-9 11:40:27 | 显示全部楼层 |阅读模式
Discuz!NT是一个.net好论坛,而且开源,所以很爽。但是很多朋友的程序是asp的,不要整合。我教大家一个方法,如下:

整合原理:Discuz!NT的Cookie是用DES加密的,所以删除DES加密过程,就可以了

第一步,先去 DNT官方下载源码 http://www.discuznt.com/opensource.html 找到适合自己的版本。我下载 SQLServer版 (.net Framework2.0)
第二步,按照dnt_sql_n2_1_src.zip里的帮助,用VS打开这个项目
第三步,打开 \Forum\ForumUtils.cs 大约350行开始

第一处:找到
  public static string GetCookiePassword(string key)
  {
            return DES.Decode(GetCookie("password"), key).Trim();
  }
修改为
  public static string GetCookiePassword(string key)
  {
            return GetCookie("password").Trim();
  }
-----------------------------------------------------------------------------------------
第二:找到
  public static string GetCookiePassword(string password, string key)
  {
            return DES.Decode(password, key);
  }
修改为
  public static string GetCookiePassword(string password, string key)
  {
            return password;
  }
-----------------------------------------------------------------------------------------第三:找到
  public static string SetCookiePassword(string password, string key)
  {
  //  if (password.Length < 32)
  //  {
  //    password = password.PadRight(32);
  //  }
            return DES.Encode(password, key);
  }

修改为
  public static string SetCookiePassword(string password, string key)
  {
  //  if (password.Length < 32)
  //  {
  //    password = password.PadRight(32);
  //  }
            return password;
  }


第四步:
重写编译就可以拉

特别注意:Discuz!NT官方发布的源码版(如:dnt_sql_n2_1_src.zip)和安装版(如:dnt_sql_n2_1.zip) 版本不一致(可以去官方下载对比bin文件即可知道),所以不能将用源码版编译的DLL给安装版用,必须都用源码版的。下面两个下载已经是源码版的编译,只做以上代码修改,没做任何其他修改,欢迎下载。




文件名:acs_n2_1.rar
下载次数:6
文件类型:application/octet-stream
文件大小:5.16 M
上传时间:2007-8-4 23:55:29
描述:Access版




文件名:sql_n2_1.rar
下载次数:4
文件类型:application/octet-stream
文件大小:5.07 M
上传时间:2007-8-4 23:55:29
描述:SQLServer版
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则