二級(jí)域名Cookie問題的解決方法
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 22:44:57
二級(jí)域名Cookie問題的解決方法
二級(jí)域名Cookie問題的解決方法:在代碼中,我是通過Request.IsAuthenticated來判斷當(dāng)前請(qǐng)求是否被驗(yàn)證的,以前全部采用www.cnblogs.com域名時(shí)很正常,看來是域名不同引起的。對(duì)于Form驗(yàn)證,驗(yàn)證是通過cookie進(jìn)行的,在執(zhí)行Request.IsAuthenticated時(shí),會(huì)請(qǐng)求客戶端相應(yīng)的Co
導(dǎo)讀二級(jí)域名Cookie問題的解決方法:在代碼中,我是通過Request.IsAuthenticated來判斷當(dāng)前請(qǐng)求是否被驗(yàn)證的,以前全部采用www.cnblogs.com域名時(shí)很正常,看來是域名不同引起的。對(duì)于Form驗(yàn)證,驗(yàn)證是通過cookie進(jìn)行的,在執(zhí)行Request.IsAuthenticated時(shí),會(huì)請(qǐng)求客戶端相應(yīng)的Co

在代碼中,我是通過Request.IsAuthenticated來判斷當(dāng)前請(qǐng)求是否被驗(yàn)證的,以前全部采用www.cnblogs.com域名時(shí)很正常,看來是域名不同引起的。對(duì)于Form驗(yàn)證,驗(yàn)證是通過cookie進(jìn)行的,在執(zhí)行Request.IsAuthenticated時(shí),會(huì)請(qǐng)求客戶端相應(yīng)的Cookie, Cookie名是在web.config中指定的,比如博客園web.config中的設(shè)置:
代碼如下:
<authentication mode="Forms">
<forms name=".DottextCookie" loginUrl="login.aspx" protection="All" timeout="480" path="/" />
</authentication>
也就是說在執(zhí)行Request.IsAuthenticated時(shí),會(huì)執(zhí)行類似這樣的代碼,HttpCookie cookie = Request.Cookies[".DottextCookie"];我們知道Cookie是與域名關(guān)聯(lián)的,HttpCookie就有個(gè)Domain屬性。博客園所遇到的問題就是二級(jí)域名不能訪問主域名的cookie,登錄時(shí),博客園的程序通過FormsAuthentication.SetAuthCookie設(shè)置Cookie, 而登錄代碼是在www.cnblogs.com域名下執(zhí)行的,cookie的域名被默認(rèn)設(shè)置為www.cnblogs.com, 而我們?cè)诙?jí)域名下就無法訪問這個(gè)cookie,如何解決這個(gè)問題呢?cookie的domain是否可以設(shè)置成對(duì)所有二級(jí)域名有效?在Google中苦苦尋覓,終于找到了一篇文章(Tips On Using SubDomain), 原來可以將cookie關(guān)聯(lián)的域設(shè)置為".domain.ext", 博客園的設(shè)置就是.cnblogs.com。 這樣,我在FormsAuthentication.SetAuthCookie之后,加上這樣的代碼就解決問題了:
C#
代碼如下:
HttpCookie cookie = Request.Cookies[".DottextCookie"];
if(cookie!=null)
{
cookie.Domain = ".cnblogs.com";
Response.Cookies.Add(cookie);
}
注:
1、如果你現(xiàn)在還會(huì)遇到訪問二級(jí)域名要重新登錄的情況,請(qǐng)刪除你計(jì)算機(jī)中相應(yīng)的cookie文件,路徑在C:\Documents and Settings\用戶名\Cookies與C:\Documents and Settings\用戶名\Local Settings\Temporary Internet Files中,文件格式為:用戶名@www.cnblogs.com, 然后重新登錄。
2、如果你發(fā)現(xiàn)其他與二級(jí)域名相關(guān)的問題,請(qǐng)及時(shí)與我聯(lián)系。
3、如果你在訪問博客園時(shí),出現(xiàn)“Runtime Error”錯(cuò)誤,那是因?yàn)閯倓偢铝薲ll文件,你再過1、2分鐘重新打開IE訪問就行了。
4、現(xiàn)在已經(jīng)全面啟用二級(jí)域名。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
二級(jí)域名Cookie問題的解決方法
二級(jí)域名Cookie問題的解決方法:在代碼中,我是通過Request.IsAuthenticated來判斷當(dāng)前請(qǐng)求是否被驗(yàn)證的,以前全部采用www.cnblogs.com域名時(shí)很正常,看來是域名不同引起的。對(duì)于Form驗(yàn)證,驗(yàn)證是通過cookie進(jìn)行的,在執(zhí)行Request.IsAuthenticated時(shí),會(huì)請(qǐng)求客戶端相應(yīng)的Co