手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >discuz 跨域整合的记录文件
discuz 跨域整合的记录文件
摘要:createbyahuinan2009-6-22upbyahuian2009-6-23upbyahuinan2009-6-241、将comm...

create by ahuinan 2009-6-22

up by ahuian 2009-6-23

up by ahuinan 2009-6-24

1、将common项目中的md5函数代码更改为:

复制代码 代码如下:

return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);

实现主站与论坛统一加密方式。

2、将common项目中的Encode和Decode改成直接返回。

3、ASP若采用session,则之前先判断是否有cookie。而主站的统一退出只需要添加一个清空cookie操作,代码可以如下:

复制代码 代码如下:

Response.Cookies("dnt")("userid") = rs("uid")

Response.Cookies("dnt")("password") = DESCode

Response.Cookies("dnt")("tpp") = rs("tpp")

Response.Cookies("dnt")("ppp") = rs("ppp")

Response.Cookies("dnt")("pmsound") = rs("pmsound")

Response.Cookies("dnt")("invisible") = rs("invisible")

Response.Cookies("dnt")("referer") = "index.aspx"

Response.Cookies("dnt")("sigstatus") = rs("sigstatus")

Response.Cookies("dnt")("expires") = 0

Response.Cookies("dnt").Domain = ".xxxx.com" //修改为你的域名,注意前面带.(点)

Response.Cookies("dnt").Secure = False

4、在dnt论坛中的aspx>>1文件夹下面先建立一个login_in.aspx处理所有的同步登陆请求。实现多域名下同步登陆,比如可以实现www.a.com和www.b.com 下的登录问题。

5、管理员部分由于修改了加解密部门,所以需要重写admin/index.aspx.cs文件,注释掉:

复制代码 代码如下:

//if (Context.Request.Cookies["dntadmin"] == null || Context.Request.Cookies["dntadmin"]["key"] == null ||ForumUtils.GetCookiePassword(Context.Request.Cookies["dntadmin"]["key"].ToString(), config.Passwordkey) != (oluserinfo.Password + secques + oluserinfo.Userid.ToString()))

更改为:

复制代码 代码如下:

if (Context.Request.Cookies["dntadmin"] == null || Context.Request.Cookies["dntadmin"]["key"] == null)

同步登陆代码文件有个文件名是index.aspx直接拷贝过去OK,拷贝到admin/index.aspx里面

6、以下内容是为了修复IE6下COOKIE丢失的问题,因为IE6不支持P3P协议,可以再每个程序网站添加该协议,但比较麻烦,现在直接在IIS添加HTTP头。

自定义HTTP头名为:P3P

自定义HTTP头值为:CP=CAO PSA OUR

7、可能用到的整合文件:

复制代码 代码如下:

<%@ Page Language="C#" %>

<%@ Import Namespace="Discuz.Forum" %>

<%@ Import Namespace="Discuz.Common" %>

<script runat="server">

protected void Page_Load(object sender, EventArgs e)

{

if (Request.QueryString["userName"] != null && Request.QueryString["passWord"] != null)

{

string userName = Request.QueryString["userName"].ToString().Replace("'", "''");

string passWord = Request.QueryString["passWord"].ToString().Replace("'", "''");

int uid = Discuz.Forum.Users.CheckPassword(userName, passWord, false);

if (uid != -1)

{

LoginLogs.DeleteLoginLog(Discuz.Common.DNTRequest.GetIP());

UserCredits.UpdateUserCredits(uid);

ForumUtils.WriteUserCookie(uid, Discuz.Common.Utils.StrToInt(DNTRequest.GetString("expires"), 500),userName, DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));

Users.UpdateUserLastvisit(uid, Discuz.Common.DNTRequest.GetIP());

}

}

}

</script>

【discuz 跨域整合的记录文件】相关文章:

asp.net遍历目录文件夹和子目录所有文件

asp.net GridView 中增加记录的方法

浅谈ASP.NET中最简单的自定义控件

c#将Excel数据导入到数据库的实现代码

OpenCms 带分页的新闻列表

ASP.NET MVC3 实现全站重定向的简单方法

iis 服务器应用程序不可用的解决方法

获取转向地址的URL的源文件(可自定义REFER)

iframe跨域与session失效问题的解决办法

应用Response.Write实现带有进度条的多文件上传

精品推荐
分类导航