8

我正在尝试设置 cookie 的路径,但总是收到错误消息:

CookieException: The 'Path'='/applogin'部分 cookie 无效。

代码如下所示:

Cookie newCookie = new Cookie("JSESSIONID", session.SessionId, "/applogin", "domain.com");
newCookie.Secure = true;
webRequest.CookieContainer.Add(new Uri(@"https://domain.com"), newCookie);

然后在最后一行抛出异常......谁能指出我正确的方向?

4

2 回答 2

12

在您的情况下,您有两个网址:一个是 a https://domain.com,第二个是 a https://domain.com/applogin。假设 CookieContainer 包含路径 /applogin 的 cookie。这意味着如果您尝试检索 url 的 cookie 列表https://domain.com/applogin- 您将获得一个 cookie。如果您尝试检索 url 的 cookie https://domain.com- 您将获得 0 个 cookie。

现在让我们看看你的样本。您有一个 cookiehttps://domain.com/applogin并且您正尝试将其添加到 CookieContrainer 的 url https://domain.com。CookieContainer 验证此 cookie 不能用于特定 url,因为它是不同 url 的问题。在您的情况下,您需要更改添加 cookie 的行:

webRequest.CookieContainer.Add(new Uri(@"https://domain.com/applogin"), newCookie);

或者我猜你想为整个 domain.com 使用这个 cookie - 然后你需要改变你创建它的方式

Cookie newCookie = new Cookie("JSESSIONID", session.SessionId, "/", "domain.com");
于 2013-04-03T23:33:22.720 回答
0

在某些浏览器中,路径区分大小写。确保所有对“/applogin”的引用都与大小写完全匹配。

http://msdn.microsoft.com/en-us/library/ms178194%28v=vs.85%29.aspx

于 2013-04-03T20:20:12.230 回答