c# - HttpWebRequest/HttpWebResponse 和 cookie 的问题

标签 c# .net

我在使用 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/

相关文章:

.net - 如何在不违反 MVVM 原则的情况下处理拖放?

c# - 为什么我的 Windows 窗体卡住并死锁?

c# - 将文本文件读入数组?

c# - 在托管应用程序中调用具有命名参数的函数

c# - 如何使用 ProcessStartInfo 运行批处理文件?

.net - 利用.net中的web.config使用浏览器缓存?

c# - 如何建立一个可以被2个线程同时访问的队列?

c# - 带有参数的mysql odbc插入

c# - JPEG 编码器不适用于 GDI+ on mono (CentOS)

c# - 如何获取我的应用程序可用的内存量