2012-11-23 76 views
1

我正在使用下面的代碼重用會話。C#httpwebrequest cookies

我將在grabUrl響應cookie上獲得相同的會話ID嗎?

如何知道這兩個請求是否使用相同的會話/ cookie?

謝謝。

CookieContainer cookCon = new CookieContainer(); 

Httpwebrequest loginReq = (httpwebrequest) loginReq.create(loginurl); 

loginReq.cookiecontainer = cookCon; 

... All the response stuffs 

Httpwebrequest grabReq = (httpwebrequest) grabReq.create(grabUrl); 

grabUrl.cookiecontainer = cookCon 

當我添加以下代碼來查看容器的內容,這表明,有一個會話ID:

 foreach (Cookie cook in cookieContainer.GetCookies(new Uri(loginurl))) 
     { 
      Console.WriteLine("Cookie_Get_Container:"); 
      Console.WriteLine("===================================================="); 
      Console.WriteLine("String: {0}", cook.ToString()); 
      Console.WriteLine("===================================================="); 
     } 

所以我加餅乾到登錄響應:

cookieContainer.Add(new Uri(domainUrl), loginRes.Cookies); 

當我嘗試從cookieContainer.grabRes.Cookies獲取時,我無法獲取會話ID。 有何建議?

+1

我94%肯定答案是肯定的 - 但這是如此微不足道的測試 - 爲什麼不把它編碼,看看? – SAJ14SAJ

+0

...或使用Fiddler檢查傳出的請求。 – McGarnagle

+0

確定他們是否使用同一個會話的任何代碼? – kyusan93

回答

0

由於您未顯示從第一個響應中獲取會話cookie的代碼,我假設您不是,答案是「否,爲第二個請求創建新會話」。

您想從第一個響應中獲取會話ID(和其他)並將它們設置爲新的請求(即將它們添加到容器中)。

備註:根據驗證方法,驗證下一個請求(與會話ID不同)的信息可能不會包含在cookie中。

+0

感謝您的回覆。我對這個餅乾很感興趣。你能告訴我關於如何添加到容器的代碼,以及基於我的代碼在這個問題中放置這些代碼的位置。非常感謝你。 – kyusan93