none
請教winform下 Cookies運用 RRS feed

  • 問題

  • C#2008
    使用IE登入網站  如果local有保留該網站cookies便可以自動登入
    小弟最近想在winform下實現這功能
    我想大致上流程應該是這樣
    連線網站URL(這裡用HttpWebRequest應該OK)
    讀取local cookies(不知道該如何讀取??)
    提交cookies給網站(把存在local cookies內容送給網站,達到自動登入網站但不知道該如何送出???)
    不知道那位大大有相關範例  讓小弟學習
    謝謝

    2009年4月21日 下午 01:34

解答

  • HI,

    您可以利用HttpWebRequest類別將Cookie送往Web Server, 例如:
    httpWebRequest.Headers.Add(HttpRequestHeader.Cookie,"test=123");

    至於cookie的內容可以自行到C:\Documents and Settings\使用者登入Windows名稱\Cookies資料夾搜到正確的Cookie檔案並讀取其內容
    • 已標示為解答 ricoisme 2009年4月23日 下午 06:44
    2009年4月22日 上午 01:51

所有回覆

  • HI,

    您可以利用HttpWebRequest類別將Cookie送往Web Server, 例如:
    httpWebRequest.Headers.Add(HttpRequestHeader.Cookie,"test=123");

    至於cookie的內容可以自行到C:\Documents and Settings\使用者登入Windows名稱\Cookies資料夾搜到正確的Cookie檔案並讀取其內容
    • 已標示為解答 ricoisme 2009年4月23日 下午 06:44
    2009年4月22日 上午 01:51
  • HI,

    您可以利用HttpWebRequest類別將Cookie送往Web Server, 例如:
    httpWebRequest.Headers.Add(HttpRequestHeader.Cookie,"test=123");

    至於cookie的內容可以自行到C:\Documents and Settings\使用者登入Windows名稱\Cookies資料夾搜到正確的Cookie檔案並讀取其內容

    tihs 大大
    我取得cookie path(利用Environment.GetFolderPath)並找出特定的cookies filename讀取後準備送出cookie至網站
     string CCcontent//local cookies 內容;
     HttpWebRequest myrequest = (HttpWebRequest)WebRequest.Create("http://tw.yahoo.com");
     myrequest.Timeout = 5000;
     myrequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)";
     myrequest.Headers.Add(HttpRequestHeader.Cookie, CCcontent);--這裡不知道使用是否正確  感覺沒送到網站
     HttpWebResponse myresponse = (HttpWebResponse)myrequest.GetResponse();
     Stream mystream = myresponse.GetResponseStream();
     StreamReader sr = new StreamReader(mystream, Encoding.GetEncoding("big5"));
     finalhtml = sr.ReadToEnd();
     sr.Close();
     sr.Dispose();
     mystream.Close();
     mystream.Dispose();
     textBox1.Text = finalhtml;--這裡所顯示的文字是沒有登入的結果
    不知道那裏出了問題  可否請大大幫小弟解惑

    感恩   謝謝

    (小弟使用VS2008 webbrowser元件 卻可以得到登入後的結果  也沒有提交任何cookies  只有簡單的填入URL  我想應該是webbrowser封裝了IE)
    2009年4月22日 下午 03:22
  • HI,

    您取得的Cookie必須是登入成功後得到的Cookie, 執行才會成功, 否則還要先送出一個登入的動作
    2009年4月23日 上午 08:44
  • HI,

    您取得的Cookie必須是登入成功後得到的Cookie, 執行才會成功, 否則還要先送出一個登入的動作

    tihs 大
    我取local端以登入過得cookies  所以可以確定是登入成功後的cookies  因為我使用IE或VS2208 webrowser 元件都不用在輸入我自己的ID和密碼就可以直接進入網站  只是現在我卡在提交local端登入成功後的cookies給我需要的網站~~~~><

    我在嘗試看看
    謝謝~~~

    提交cookies出現錯誤訊息
    指定值具有無效的 CRLF 字元。
    參數名稱: value
    不知道大大有遇過嗎??

    感恩

    • 已編輯 ricoisme 2009年4月23日 下午 02:42
    2009年4月23日 下午 02:10
  • 我的建議是掛個封包監測軟體,做一次正常登入,一次程式登入,比對兩次送出的 HTTP GET HEAD ,並修正程式輸出相同資訊即可。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年4月23日 下午 02:31
  • 感謝大家熱心回答

    最後小弟還是選擇使用webbrowser快速完成我想要的功能

    謝謝~~^^

    2009年4月23日 下午 06:44