discuz 跨域整合的记录文件
程序员文章站
2024-03-09 10:17:53
\\create by ahuinan 2009-6-22 \\up by ahuian 2009-6-23 \\up by ahuinan 2009-6-24 1、将co...
\\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.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>
\\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.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 跨域整合的记录文件
-
fineuploader 跨子域上传文件 cookie丢失问题的解决 博客分类: JavaScript 学习vb2005xu自己动手系列 jsfineuploaderphpfile
-
fineuploader 跨子域上传文件 cookie丢失问题的解决 博客分类: JavaScript 学习vb2005xu自己动手系列 jsfineuploaderphpfile
-
gulp解决跨域的配置文件问题
-
html中文件跨域提交的有关问题
-
Nginx跨域使用字体文件的配置方法
-
Nginx跨域使用字体文件的配置方法
-
SpringBoot2.x整合Shiro出现cors跨域问题(踩坑记录)
-
记一次nginx跨域404的问题 ,切记css、js、图片文件会优先匹配
-
react+spring 记录跨域问题的解决方法