0

我正在尝试使用 ashx 文件开发一个简单的单点登录解决方案来设置/删除 cookie。.Net 4.0,C#。我正在向 ashx 资源(在不同的域 siteb.com/file.ashx 上)发出 Web 请求(来自 sitea.com/)以设置 cookie,然后我向同一个请求(来自 sitec.com/)发出另一个请求资源(在 siteb.com/file.ashx)查看是否存在相同的 cookie。不幸的是,它返回为空。当我摆弄它时,我可以看到 cookie 在这两种情况下都存在(在 siteb.com 上的请求/响应标头中)。

我不明白的是,它怎么不能通过代码获得。我尝试使用 context.Request.Cookies(上下文来自公共 void ProcessRequest(HttpContext context) 方法)、HttpContext.Current.Request.Cookies,也在 Response 上,但没有成功。

HttpCookie AuthCookie = context.Request.Cookies["SiteCookie"];

PS:我在各个方面都编写代码,即发出请求和检查 cookie 验证。知道可能是什么问题吗?

4

1 回答 1

3

Cookie 具有域属性,请参阅http://msdn.microsoft.com/en-us/library/system.web.httpcookie.domain.aspx。因此,您的 cookie 似乎是为域 siteb.com 设置的,因此对于其他域不可用。

于 2012-05-28T21:00:47.153 回答