tcbxh2008 发表于 2007-8-9 11:40:27

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

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版
页: [1]
查看完整版本: 手把手教你去除Discuz!NT的Cookie的加密,方便ASP程序整合