我把domain设置成www.456.com,而后正式环境下测试
结果设成www.456.net还是不行啊。
我是这么写cookie的
request.cookies["name1"]["item11"]=value11;
request.cookies["name1"]["item12"]=value12;
request.cookies["name1"]["item13"]=value13;
request.cookies["name1"].Domain="www.456.net";
request.cookies["name1"].Expires=DateTime.Now.AddYear(10);
为什么客户端还是没有对应的Cookie记录呢?头发都白了!苦啊!

解决方案 »

  1.   

    修正一下
    Web应用A中的a.htm中有一个iframe,iframe指向Web应用B的b.aspx(含Web应用B的Cookie读写操作,与A应用无关)
    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"].Expires=DateTime.Now.AddHours(1);
    -----------------------------------------------------------------------------
    其中CADProvider.CADProvider.Domain为配置文件中读取的Cookie的域名
    真是不明白了 CADProvider.CADProvider.Domain 配置为 www.456.com.cn / .456.com.cn / 456.com.cn / www.123.com / 123.com 都不行啊!
    会不会和Cookie的路径有关呢?
      

  2.   

    我把路径也设置了
    this.Response.Cookies["TCL"].Path="/aditem";
    CADProvider.CADProvider.Domain 配置为 456.com.cn 
    还是不行。
    单独调用 http://www.456.com.cn/aditem/b.aspx ,Cookie读写都是正常的,我已经晕了!
      

  3.   

    去请教了高人,说这是跨域写Cookie,虽然可以通过页面跳转的方式来写Cookie,但我的应用环境(B应用相当于广告发布系统应用,b.aspx即广告展现页面,A应用相当于广告发布站点,a.htm即广告发布页面)不允许进行页面跳转方式来写Cookie。
    微软真是的,iframe中自己写自己的Cookie,又不访问其他域的Cookie,这也有安全隐患?
    得了,还是自己看看有没有别的解决方法了。
    散分吧!