爱东东

VS.NET,IT,个人,个人网站 爱东东 http://www.idongdong.net

 

Asp.Net iframe Cookie 域 的问题!

Web应用A中的a.htm中有一个iframe,iframe指向Web应用B的b.aspx(含Web应用B的Cookie读写操作,与A应用无关) B应用相当于广告发布系统应用,b.aspx即广告展现页面,A应用相当于广告发布站点,a.htm即广告发布页面

A应用部署于http://www.123.com下,B应用部署于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时,http://www.456.com.cn/aditem/b.aspx会读写Cookie,都是www.456.com.cn/aditem/b.aspx自己用的,和www.123.com没有关系。
真是不明白了 CADProvider.CADProvider.Domain 配置为 www.456.com.cn / .456.com.cn / 456.com.cn / www.123.com / 123.com,Path设置和不设置 b.aspx都不能读写Cookie啊!
单独调用 http://www.456.com.cn/aditem/b.aspx ,Cookie读写都是正常的!
------------------------------
去请教了高人,说这是跨域写Cookie,虽然可以通过页面跳转的方式来写Cookie,但我的应用环境不允许进行页面跳转方式来写Cookie。
微软真是的,iframe中自己写自己的Cookie,又不访问其他域的Cookie,这也有安全隐患?

posted on 2006-06-30 09:56  爱东东  阅读(1761)  评论(3编辑  收藏  举报

导航