siteA.com 调用 sitecookie.com/cookies.ashx 并为 sitecookie.com 域设置一个 cookie“cookiename”。相同的浏览器、相同的窗口、新选项卡、siteB.com 调用 sitecookie.com/cookies.ashx 并尝试获取相同的 cookie“cookiename”(再次用于 sitecookie.com 域)但为空。
cookies.ashx 实现 IHttpHandler、IReadOnlySessionState 和 conformsTo [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
所以问题是,为什么它是空的,我们可以检索它吗?
这就是我从siteA和siteB发出请求的方式:
WebClient fs = new WebClient();
var data = fs.DownloadData("http://sitecookie.com/cookies.ashx");
var tostring = System.Text.Encoding.ASCII.GetString(data);
return tostring;
这就是我在 cookies.ashx 中读取 cookie 的方式,返回值是一个字符串。
var cookie = context.Request.Cookies["cookiename"];
if (cookie != null) return cookie.Value;
return "false";
这就是我在 cookies.ashx 中编写 cookie 的方式
HttpCookie cookie = new HttpCookie("sso");
cookie.Value = context.Request.QueryString["token"];
cookie.Expires = DateTime.Now.AddDays(1);
context.Response.AppendCookie(cookie);
return "true";