Asp.Net iframe Cookie 域 的问题!
生活随笔
收集整理的這篇文章主要介紹了
Asp.Net iframe Cookie 域 的问题!
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Web應(yīng)用A中的a.htm中有一個(gè)iframe,iframe指向Web應(yīng)用B的b.aspx(含Web應(yīng)用B的Cookie讀寫操作,與A應(yīng)用無關(guān)) B應(yīng)用相當(dāng)于廣告發(fā)布系統(tǒng)應(yīng)用,b.aspx即廣告展現(xiàn)頁面,A應(yīng)用相當(dāng)于廣告發(fā)布站點(diǎn),a.htm即廣告發(fā)布頁面
A應(yīng)用部署于http://www.123.com下,B應(yīng)用部署于http://www.456.com.cn下
a.htm代碼如下
<html>
<head>
???<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312">
</head>
<body>
???<div>
??????<iframe?src="http://www.456.com.cn/aditem/b.aspx"?width=500?heigth=300??frameborder=1?scrolling=no></iframe>
???</div>
</body>
</html>
-----------------------------------------------------------------------------
b.aspx沒有人工加任何代碼
---------------------------------------
b.aspx.cs的page_load代碼如下
for(int?i=0;i<this.Request.Cookies.Count;i++){
???if(this.Request.Cookies[i].HasKeys==true&&this.Request.Cookies[i].Name=="TCL"){
??????for(int?j=0;j<this.Request.Cookies[i].Values.Count;j++){
?????????string?sname=this.Request.Cookies[i].Name;
?????????string?sitem=this.Request.Cookies[i].Values.AllKeys[j];
?????????string?svalue=this.Request.Cookies[i].Values[j];
?????????this.Response.Cookies[sname][sitem]=svalue;
??????}
??????break;
???}
}
this.Response.Cookies["TCL"]["ITEM"+DateTime.Now.ToString("yyyyMMddHHmmss")]=DateTime.Now.ToString("yyyyMMddHHmmss");
if(CADProvider.CADProvider.Domain!=null&&CADProvider.CADProvider.Domain!=""){
???this.Response.Cookies["TCL"].Domain=CADProvider.CADProvider.Domain;
}
this.Response.Cookies["TCL"].Path="/aditem";
this.Response.Cookies["TCL"].Expires=DateTime.Now.AddHours(1);
-----------------------------------------------------------------------------
其中CADProvider.CADProvider.Domain為配置文件中讀取的Cookie的域名
目的是打開http://www.123.com/a.htm時(shí),http://www.456.com.cn/aditem/b.aspx會(huì)讀寫Cookie,都是www.456.com.cn/aditem/b.aspx自己用的,和www.123.com沒有關(guān)系。
真是不明白了?CADProvider.CADProvider.Domain?配置為?www.456.com.cn?/?.456.com.cn?/?456.com.cn?/?www.123.com?/?123.com,Path設(shè)置和不設(shè)置?b.aspx都不能讀寫Cookie啊!
單獨(dú)調(diào)用?http://www.456.com.cn/aditem/b.aspx?,Cookie讀寫都是正常的!
------------------------------
去請(qǐng)教了高人,說這是跨域?qū)慍ookie,雖然可以通過頁面跳轉(zhuǎn)的方式來寫Cookie,但我的應(yīng)用環(huán)境不允許進(jìn)行頁面跳轉(zhuǎn)方式來寫Cookie。
微軟真是的,iframe中自己寫自己的Cookie,又不訪問其他域的Cookie,這也有安全隱患?
A應(yīng)用部署于http://www.123.com下,B應(yīng)用部署于http://www.456.com.cn下
a.htm代碼如下
<html>
<head>
???<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312">
</head>
<body>
???<div>
??????<iframe?src="http://www.456.com.cn/aditem/b.aspx"?width=500?heigth=300??frameborder=1?scrolling=no></iframe>
???</div>
</body>
</html>
-----------------------------------------------------------------------------
b.aspx沒有人工加任何代碼
---------------------------------------
b.aspx.cs的page_load代碼如下
for(int?i=0;i<this.Request.Cookies.Count;i++){
???if(this.Request.Cookies[i].HasKeys==true&&this.Request.Cookies[i].Name=="TCL"){
??????for(int?j=0;j<this.Request.Cookies[i].Values.Count;j++){
?????????string?sname=this.Request.Cookies[i].Name;
?????????string?sitem=this.Request.Cookies[i].Values.AllKeys[j];
?????????string?svalue=this.Request.Cookies[i].Values[j];
?????????this.Response.Cookies[sname][sitem]=svalue;
??????}
??????break;
???}
}
this.Response.Cookies["TCL"]["ITEM"+DateTime.Now.ToString("yyyyMMddHHmmss")]=DateTime.Now.ToString("yyyyMMddHHmmss");
if(CADProvider.CADProvider.Domain!=null&&CADProvider.CADProvider.Domain!=""){
???this.Response.Cookies["TCL"].Domain=CADProvider.CADProvider.Domain;
}
this.Response.Cookies["TCL"].Path="/aditem";
this.Response.Cookies["TCL"].Expires=DateTime.Now.AddHours(1);
-----------------------------------------------------------------------------
其中CADProvider.CADProvider.Domain為配置文件中讀取的Cookie的域名
目的是打開http://www.123.com/a.htm時(shí),http://www.456.com.cn/aditem/b.aspx會(huì)讀寫Cookie,都是www.456.com.cn/aditem/b.aspx自己用的,和www.123.com沒有關(guān)系。
真是不明白了?CADProvider.CADProvider.Domain?配置為?www.456.com.cn?/?.456.com.cn?/?456.com.cn?/?www.123.com?/?123.com,Path設(shè)置和不設(shè)置?b.aspx都不能讀寫Cookie啊!
單獨(dú)調(diào)用?http://www.456.com.cn/aditem/b.aspx?,Cookie讀寫都是正常的!
------------------------------
去請(qǐng)教了高人,說這是跨域?qū)慍ookie,雖然可以通過頁面跳轉(zhuǎn)的方式來寫Cookie,但我的應(yīng)用環(huán)境不允許進(jìn)行頁面跳轉(zhuǎn)方式來寫Cookie。
微軟真是的,iframe中自己寫自己的Cookie,又不訪問其他域的Cookie,這也有安全隱患?
轉(zhuǎn)載于:https://www.cnblogs.com/hmmcsdd/archive/2006/06/30/cookie.html
總結(jié)
以上是生活随笔為你收集整理的Asp.Net iframe Cookie 域 的问题!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建议CSDN增加谈恋爱专区
- 下一篇: FCS编程之NetConnect对象