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

首頁 > 學院 > 開發設計 > 正文

關于Cookie跨域的問題研究

2019-11-15 02:32:19
字體:
來源:轉載
供稿:網友

關于Cookie跨域的問題研究

  Cookie是一個偉大的發明,它允許Web開發者保留他們的用戶的登錄狀態。但是當你的站點有一個以上的域名時就會出現問題了。在Cookie規范上說,一個cookie只能用于一個域名,不能夠發給其它的域名。因此,如果在瀏覽器中對一個域名設置了一個cookie,這個cookie對于其它的域名將無效。如果你想讓你的用戶從你的站點中的其中一個進行登錄,同時也可以在其它域名上進行登錄,這可真是一個大難題。

跨二級域名

  我們知道cookie是可以跨二級域名來訪問,這個很好理解,例如你 www.test1.com在的web應用程序創建了一個cookie,要想在bbs.test1.com這樣的二級域名對應的應用程序中訪問,就必須你在創建cookie的時候設置domain參數domain=test1.com。 以asp.net為例 代碼如下:

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

跨頂級域名

  如果我不是二級域名而是完全在不同頂級域名中,例如 www.test1.com 所在的web應用程序創建了一個cookie,想要在 www.test2.com 或其二級域名的應用程序中訪問,改怎么辦呢?我們知道靠常規反的方法是訪問不了的,關鍵我們就是看看有沒有方法可以訪問。事實是Cookie可以在一定條件下跨域,而不是隨心所欲的實現跨域。

  我們來做個測試,看看兩個站點 www.test1.com和 www.test2.com如何實現cookie跨域訪問。 按照常規我們需要有2個頂級域名,并且有DNS服務器才能夠配置域名,否則我們是無法驗證的,但是這里我們也沒有必要那么麻煩,我們可以通過修改hosts文件來模擬。在 c:/windows/system32/drivers/etc 中有 hosts文件,在末尾添加上

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

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

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

  其中Default.aspx是 www.test1.com的頁面,訪問的地址是 http://www.test1.com/Default.aspx。看一下前臺代碼,它沒有任何后臺代碼

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>

  另外一個是 SSO.ashx 頁面,我們認為它是 www.test2.com的頁面,前臺沒有任何代碼,后臺代碼如下:

  • 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$ 的摘要說明/// </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 = "text/plain";context.Response.Add
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 浦城县| 洪湖市| 泸溪县| 商河县| 桃园市| 宝清县| 大埔区| 交口县| 常德市| 子长县| 茶陵县| 唐河县| 西华县| 枣庄市| 嘉荫县| 南郑县| 阳东县| 饶阳县| 昌乐县| 永胜县| 深泽县| 江山市| 陆河县| 阿瓦提县| 永嘉县| 武陟县| 循化| 凤冈县| 百色市| 清原| 峨眉山市| 建湖县| 永靖县| 济源市| 塘沽区| 普兰店市| 金阳县| 韶关市| 建德市| 涿州市| 大港区|