我正在尝试设置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);
然后在最后一行抛出异常......有人能指出我正确的方向吗?
答案 0 :(得分:9)
在您的情况下,您有两个网址:一个是https://domain.com
,第二个是https://domain.com/applogin
。我们假设CookieContainer包含路径/ applogin的cookie。这意味着如果您尝试检索网址https://domain.com/applogin
的Cookie列表 - 您将获得一个Cookie。如果您尝试检索网址https://domain.com
的Cookie - 您将获得0个Cookie。
现在让我们来看看你的样本。您有https://domain.com/applogin
的Cookie,并且您正尝试将其添加到CookieContrainer以获取网址https://domain.com
。 CookieContainer验证此cookie不能用于特定网址,因为它是针对不同网址的问题。在您的情况下,您需要更改添加cookie的行:
webRequest.CookieContainer.Add(new Uri(@"https://domain.com/applogin"), newCookie);
或者我想你想将这个cookie用于整个domain.com - 然后你需要改变你创建它的方式
Cookie newCookie = new Cookie("JSESSIONID", session.SessionId, "/", "domain.com");
答案 1 :(得分:0)
在某些浏览器中,路径区分大小写。确保对“/ applogin”的所有引用都与该案例完全匹配。
http://msdn.microsoft.com/en-us/library/ms178194%28v=vs.85%29.aspx