2011-07-17 11 views
6

には、C#.NETでWebブラウザーコントロールを作成する方法があり、HttpWebRequestの要求はCookieを共有しますか?WebBrowserコントロールがHttpWebRequestでCookieを共有できるようにしますか?

など。 HttpWebRequestでプログラムでリクエストが作成され、HttpWebResponseでCookieが設定されている場合は、これもWebブラウザコントロールに設定されていることを確認する方法はありますか?

同様に、ユーザーがWebBrowserコントロールを使用して移動し、Cookieが設定されている場合、HttpWebRequestのCookieContainerも更新されるようにする方法はありますか?

ありがとうございました!

答えて

3

あなたはInternetSetCookieEx/InternetGetCookieEx APIを使用して手動でクッキーを同期する必要があるだろうし、これが必要になります問題のページで使用されているすべてのサブダウンロードのURLをすべて知っていることを確認します。

また、アプリケーションによってHTTPONLYのCookieが表示されるように、INTERNET_COOKIE_HTTPONLYフラグを渡す必要があります。

1
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); 
request.CookieContainer = new CookieContainer(); 
request.CookieContainer.SetCookies(myUri, webBrowser1.Document.Cookie); 

source

そしてその逆(私はよく分からない):

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); 
//request.CookieContainer = new CookieContainer(); 
request.GetResponse(); 
webBrowser1.Document.Cookie = request.CookieContainer.GetCookies(myUri); 
+0

お返事ありがとうございます。あなたは両方の方法を行うことができないと思いますか?私がWebBrowserコントロールの代わりを使用したらどうなりますか?私にこれを可能にする選択肢はありますか? – Jimmy

+0

@ジミー:答えを更新しました。やってみよう。あなたの結果について教えてください。 – abatishchev