discuz 跨域整合的記錄文件
\\up by ahuian 2009-6-23
\\up by ahuinan 2009-6-24
1、將common項(xiàng)目中的md5函數(shù)代碼更改為:
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
實(shí)現(xiàn)主站與論壇統(tǒng)一加密方式。
2、將common項(xiàng)目中的Encode和Decode改成直接返回。
3、ASP若采用session,則之前先判斷是否有cookie。而主站的統(tǒng)一退出只需要添加一個(gè)清空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" //修改為你的域名,注意前面帶.(點(diǎn))
Response.Cookies("dnt").Secure = False
4、在dnt論壇中的aspx>>1文件夾下面先建立一個(gè)login_in.aspx處理所有的同步登陸請(qǐng)求。實(shí)現(xiàn)多域名下同步登陸,比如可以實(shí)現(xiàn)www.a.com和www.b.com 下的登錄問(wèn)題。
5、管理員部分由于修改了加解密部門(mén),所以需要重寫(xiě)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)
同步登陸代碼文件有個(gè)文件名是index.aspx直接拷貝過(guò)去OK,拷貝到admin/index.aspx里面
6、以下內(nèi)容是為了修復(fù)IE6下COOKIE丟失的問(wèn)題,因?yàn)镮E6不支持P3P協(xié)議,可以再每個(gè)程序網(wǎng)站添加該協(xié)議,但比較麻煩,現(xiàn)在直接在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>
相關(guān)文章
仿vs實(shí)現(xiàn)WPF好看的進(jìn)度條
由于WPF自帶的進(jìn)度條其實(shí)不怎么好看,而且沒(méi)啥視覺(jué)效果。下面給大家分享的是仿VS的進(jìn)度條效果的代碼,有需要的小伙伴可以參考下。2015-06-06Asp.Net模擬表單提交數(shù)據(jù)和上傳文件的實(shí)現(xiàn)代碼
這篇文章主要介紹了Asp.Net模擬表單提交數(shù)據(jù)和上傳文件的實(shí)現(xiàn)代碼,本文對(duì)3種情況都做了介紹,只有普通數(shù)據(jù)的表單、只上傳文件的表單、包含普通數(shù)據(jù)和上傳文件表單,需要的朋友可以參考下2014-08-08前臺(tái)JS(jquery ajax)調(diào)用后臺(tái)方法實(shí)現(xiàn)無(wú)刷新級(jí)聯(lián)菜單示例
前臺(tái)用AJAX直接調(diào)用后臺(tái)方法,老有人發(fā)帖提問(wèn),沒(méi)事做個(gè)示例詳細(xì)介紹一下,感興趣的朋友可以參考下2013-01-01The remote procedure call failed and did not execute的解決辦法
打開(kāi)IIS隨便訪(fǎng)問(wèn)一個(gè).asp文件,提示The remote procedure call failed and did not execute2009-11-11關(guān)于中g(shù)ridview 字符串截取的方法
在Gridview中,如果你的某一列字符串的長(zhǎng)度過(guò)長(zhǎng),不做處理的話(huà).那么將顯示的奇丑無(wú)比,可以采取設(shè)置樣式,將其顯示為定長(zhǎng),可以在點(diǎn)擊查看的時(shí)候,在另一個(gè)頁(yè)面對(duì)其進(jìn)行顯示2013-06-06ASP.NET2.0緩存(Cache)技術(shù)深入理解
緩存技術(shù)是ASP.NET2.0非常重要的一個(gè)特性,它提供了一種非常好的本地?cái)?shù)據(jù)緩存機(jī)制,從而有效的提高數(shù)據(jù)訪(fǎng)問(wèn)的性能2012-11-11利用.net控件實(shí)現(xiàn)下拉導(dǎo)航菜單制作的具體方法
這篇文章介紹了利用.net控件實(shí)現(xiàn)下拉導(dǎo)航菜單制作的具體方法,有需要的朋友可以參考一下,希望對(duì)你有所幫助2013-07-07