您的位置:首页 > Web前端 > JavaScript

Javascript & ASP.net Cookie互操作问题

2009-08-09 21:23 603 查看
同事今天在解决Portal登录时遇到一个问题,ASP.net 操作Cookie覆盖不了Js创建的Cookie。

晚上回来又研究半天终于解决。理论上js和ASP.net服务器代码均可以操作Cookie,实现Client和Server端信息的共享。但是由于Js和Asp.net默认对Cookie的处理有细微差异会导致双方无法公用。

主要原因是双方对Path的默认值定义不一样造成

The problem was actually due to a conflict in domain and path names in my
cookie. The .NET control, apparently by default, built my cookie using the
domain name and the root path. JavaScript, apparently by default, built my
cookie using the domain name and FULL path.

解决方法很简单,js和ASP.net操作Cookie均设置Path,保持一致即可。

Client : document.cookie = "userid=clientCookie2; path=/

Server端:

//这种写法有效

HttpCookie userCookie = new
HttpCookie("userid");

userCookie.Value = "serverCookie";

userCookie.Path = "/";

Response.Cookies.Add(userCookie);

另外发现一个问题

//这种写法无效

//Request.Cookies["userid"].Value =
"serverid";

//Request.Cookies["userid"].Path = "/";

不知道为什么,空了再研究吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: