我在使用 HttpWebRequest/HttpWebResponse 和 cookies/CookieContainer/CookieCollection 时遇到问题。 问题是,如果 Web 服务器未在 cookie 中发送/使用“路径”,则 Cookie.Path 等于请求 URI 的路径部分,而不是“/”或在我的应用程序中为空。 因此,这些 cookie 不适用于整个域,但它实际上在适当的网络浏览器中起作用。 有什么想法可以解决这个问题吗?
提前致谢
最佳答案
啊,我明白你的意思了。一般来说,浏览器真正做的是将包含文档的文件夹作为路径;对于“/login.php”,它将是“/”,因此它可以在整个域中有效地工作。 “/potato/login.php”将被限制为“/potato/”;任何带有尾随路径信息部分(例如“/login.php/”)的内容都不起作用。
在这种情况下,Netscape 规范可能被认为是错误的,或者至少在声称路径默认为当前文档路径时具有误导性……这取决于您在那里阅读“路径”的准确程度。然而,浏览器的行为与最初的 Netscape 版本是一致的。 Netscape 从来都不擅长编写规范...
如果 .NET 的 HttpWebRequest 确实将 CookieContainer.Path 默认为当前文档的整个路径,我会针对它提交一个错误。
不幸的是,现实世界的行为目前并没有在标准文档中实际描述......有 RFC 2965,它确实使路径正确,但进行了其他一些不代表现实世界浏览器行为的变化,所以这就是也不完全可靠。 :-(
关于c# - HttpWebRequest/HttpWebResponse 和 cookie 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/292778/