HttpWebRequest/HttpWebResponse和cookies的问题

Jam*_*mes 6 .net c#

我遇到了HttpWebRequest/HttpWebResponse和cookies/CookieContainer/CookieCollection的麻烦.问题是,如果Web服务器不在cookie中发送/使用"路径",Cookie.Path等于请求URI的路径部分而不是"/"或在我的应用程序中为空.因此,这些cookie不适用于整个域,它实际上在适当的Web浏览器中.任何想法如何解决这个问题?

提前致谢

bob*_*nce 4

啊,我明白你的意思了。一般来说,浏览器真正做的是将包含文档的文件夹作为路径;对于 \xe2\x80\x98/login.php\xe2\x80\x99 ,这将是 \xe2\x80\x98/\xe2\x80\x99 ,因此它可以在整个域中有效地工作。\xe2\x80\x98/potato/login.php\xe2\x80\x99 将被限制为 \xe2\x80\x98/potato/\xe2\x80\x99;任何带有尾随路径信息部分的内容(例如 \xe2\x80\x98/login.php/\xe2\x80\x99)都不起作用。

\n\n

在这种情况下,Netscape 规范可能被认为是错误的,或者至少在声称路径默认为当前文档路径时具有误导性...具体取决于您如何准确地读取 \xe2\x80\x98path\xe2\x80\x99 。然而,浏览器行为与最初的 Netscape 版本是一致的。Netscape 从来不擅长编写规范......

\n\n

如果 .NET 的 HttpWebRequest 确实将 CookieContainer.Path 默认为当前文档的整个路径,我会针对它提交一个错误。

\n\n

不幸的是,现实世界的行为目前实际上并没有在标准文档中描述......有 RFC 2965,它确实使路径正确,但做出了一些其他更改,不能代表现实世界的浏览器行为,因此这并不完全可靠任何一个。:-(

\n