CookieException与CookieContainer:Cookie的“路径”部分无效

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

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

代码看起来像这样:

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

那个例外是在最后一行抛出……有人能指出我正确的方向吗?

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

现在让我们来看看你的样本。 您有https://domain.com/applogin的cookie,并且您正尝试将其添加到CookieContrainer以获取urlhttps://domain.com 。 CookieContainervalidation此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"); 

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

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