国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

關(guān)于Cookie跨域的問(wèn)題

2019-11-17 02:02:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

關(guān)于Cookie跨域的問(wèn)題

 Cookie是一個(gè)偉大的發(fā)明,它允許Web開(kāi)發(fā)者保留他們的用戶的登錄狀態(tài)。但是當(dāng)你的站點(diǎn)有一個(gè)以上的域名時(shí)就會(huì)出現(xiàn)問(wèn)題了。在Cookie規(guī)范上說(shuō),一個(gè)cookie只能用于一個(gè)域名,不能夠發(fā)給其它的域名。因此,如果在瀏覽器中對(duì)一個(gè)域名設(shè)置了一個(gè)cookie,這個(gè)cookie對(duì)于其它的域名將無(wú)效。如果你想讓你的用戶從你的站點(diǎn)中的其中一個(gè)進(jìn)行登錄,同時(shí)也可以在其它域名上進(jìn)行登錄,這可真是一個(gè)大難題。

跨二級(jí)域名

  我們知道cookie是可以跨二級(jí)域名來(lái)訪問(wèn),這個(gè)很好理解,例如你 www.test1.com在的web應(yīng)用程序創(chuàng)建了一個(gè)cookie,要想在bbs.test1.com這樣的二級(jí)域名對(duì)應(yīng)的應(yīng)用程序中訪問(wèn),就必須你在創(chuàng)建cookie的時(shí)候設(shè)置domain參數(shù)domain=test1.com。 以asp.net為例 代碼如下:

1234HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");cookie.Domain = "test1.com";cookie.Path = "/";Response.Cookies.Add(cookie);

跨頂級(jí)域名

  如果我不是二級(jí)域名而是完全在不同頂級(jí)域名中,例如 www.test1.com 所在的web應(yīng)用程序創(chuàng)建了一個(gè)cookie,想要在 www.test2.com 或其二級(jí)域名的應(yīng)用程序中訪問(wèn),改怎么辦呢?我們知道靠常規(guī)反的方法是訪問(wèn)不了的,關(guān)鍵我們就是看看有沒(méi)有方法可以訪問(wèn)。事實(shí)是Cookie可以在一定條件下跨域,而不是隨心所欲的實(shí)現(xiàn)跨域。

  我們來(lái)做個(gè)測(cè)試,看看兩個(gè)站點(diǎn) www.test1.com和 www.test2.com如何實(shí)現(xiàn)cookie跨域訪問(wèn)。 按照常規(guī)我們需要有2個(gè)頂級(jí)域名,并且有DNS服務(wù)器才能夠配置域名,否則我們是無(wú)法驗(yàn)證的,但是這里我們也沒(méi)有必要那么麻煩,我們可以通過(guò)修改hosts文件來(lái)模擬。在 c:/windows/system32/drivers/etc 中有 hosts文件,在末尾添加上

127.0.0.1    www.test1.com127.0.0.1    www.test2.com 

兩行,就可以將本機(jī)用上面的域名訪問(wèn)本機(jī)回環(huán)地址了。我們只需要在IIS上部署一套程序,ip為本機(jī)回環(huán)地址,用兩個(gè)域名分別訪問(wèn)就可以了。

  我們新建三個(gè)頁(yè)面,分別是 Default.aspx、SSO.ashx、GetCookie.aspx。

  其中Default.aspx是 www.test1.com的頁(yè)面,訪問(wèn)的地址是 http://www.test1.com/Default.aspx??匆幌虑芭_(tái)代碼,它沒(méi)有任何后臺(tái)代碼

12345678910111213141516171819202122<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Admin10000.Web.Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title></head><body><form id="form1" runat="server"><div><script type="text/javascript">var _frm = document.createElement("iframe");_frm.style.display = "none";_frm.src = "http://www.test2.com/SSO.ashx";document.body.appendChild(_frm); </script></div></form></body></html>

  另外一個(gè)是 SSO.ashx 頁(yè)面,我們認(rèn)為它是 www.test2.com的頁(yè)面,前臺(tái)沒(méi)有任何代碼,后臺(tái)代碼如下:

<source id="b3m83"><tr id="b3m83"></tr></source>
<track id="b3m83"></track>
<sub id="b3m83"><tr id="b3m83"><label id="b3m83"></label></tr></sub><source id="b3m83"><optgroup id="b3m83"></optgroup></source>
    <p id="b3m83"><tr id="b3m83"></tr></p>

    <noscript id="b3m83"><tbody id="b3m83"></tbody></noscript>
    123456789101112131415161718192021222324252627282930313233343536373839using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;using System.Web.sessionState;namespace Admin10000.Web{/// <summary>/// $codebehindclassname$ 的摘要說(shuō)明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiPRofiles.BasicProfile1_1)]public class SSO : IHttpHandler{public void ProcessRequest(HttpContext context){HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");cookie.Domain = "test2.com";cookie.Path = "/";cookie.Expires = DateTime.Now.AddMinutes(10000);context.Response.Cookies.Add(cookie);context.Response.ContentType
    發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 高阳县| 保德县| 罗江县| 方正县| 利津县| 四会市| 遂平县| 红原县| 班玛县| 阿拉善左旗| 尚志市| 当涂县| 平远县| 双柏县| 都安| 旅游| 大厂| 郧西县| 涿鹿县| 开远市| 怀化市| 芦溪县| 区。| 靖江市| 和政县| 光泽县| 云浮市| 兰考县| 南木林县| 明溪县| 邹平县| 太白县| 淮安市| 红原县| 蓝山县| 道真| 兴国县| 西平县| 荆门市| 勃利县| 辽中县|