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

あなたの場合、2 つの URL があります。1 つは でhttps://domain.com、2 つ目はhttps://domain.com/apploginです。CookieContainer にパス /applogin の Cookie が含まれているとします。これは、URL の Cookie のリストを取得しようとするhttps://domain.com/apploginと、1 つの Cookie が取得されることを意味します。URL の Cookie を取得しようとするhttps://domain.comと、0 個の Cookie が取得されます。

それでは、サンプルを見てみましょう。の Cookie がhttps://domain.com/apploginあり、それを url の CookieContrainer に追加しようとしていますhttps://domain.com。CookieContainer は、別の URL の問題であるため、この Cookie が特定の URL に使用できないことを確認します。あなたの場合、Cookie を追加する行を変更する必要があります。

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

または、この Cookie を domain.com 全体で使用したい場合は、作成方法を次のように変更する必要があります。

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