問題タブ [cookiecontainer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1477 参照

c# - HttpWebrequest/WebClient/HttpClient/CookieContainer バグ? レスポンス URI にパスが含まれていない場合、Cookie を追加しません

C# (WebClient/HttpWebRequest) を使用して WordPress 管理パネルにログインしようとしていました。

に POST リクエストを送信し/wp-login.phpます。次のような Cookie で応答します。

また、次の場所にもリダイレクトされ/wp-admin/ます。Location: http://109.120.169.99/wordpress/wp-admin/

問題は、2 番目の Cookie (with path=/wp-admin) が CookieContainer に追加されないため、ログインに失敗することです。

HttpWebRequest ソース コードとhttp://referencesource.microsoft.com/#System/net/System/Net/_CookieModule.cs (OnReceiveHeaders) を調べたところResponseUri、すべての Cookie に使用されていることがわかりました。

応答 uri を使用して手動で Cookie を追加しようとしたところ、パスが無効であるという例外が発生しました。その後、私はこの答えCookieException with CookieContainer: The 'Path' part of the cookie is invalidを見つけました: CookieContainer に追加するとき、Uri は Cookie からのパスと一致する必要があると書かれています。

結局、AllowAutoRedict を無効にし (手動で処理)、これらの Cookie を手動で追加しました。

これが私のコードです:

ウェブクライアント:

.NET 4.5 HttpClient も使用してみましたが、同じ結果になりました (下で HttpWebRequest も使用していると思います)。

私は何か間違ったことをしていますか、それとも HttpWebRequest/CookieContainer のバグですか?

誰かがテストしたい場合の便宜のために、完全なソースコードを次に示します: https://gist.github.com/AlexP11223/5c176972426605ee2112 (私のテスト Web サイトとログイン/パスワードも機能するはずです)

そしてフィドラーのログ:

0 投票する
1 に答える
318 参照

c# - 重大な CookieContainer バグ?

ここで何かが足りないのですか、それとも CookieContainer のバグですか?

コンテナに 3 つの Cookie を追加してから、2 つの URL に対して GetCookieHeader 関数を呼び出します。

問題は、返されたヘッダーが「Cookie2=2」のみであるため、例外をスローする最後のアサーションです。Cookie1 Cookie が省略されている理由がわかりません。RFC6265 によれば、上記の最初のアサーションと同様の 2 つの Cookie を返す必要があります。

いくつかのコメント:

PS: 仕様から関連する部分を追加させてください:

次の条件の少なくとも 1 つが保持される場合、要求パス パスは特定の cookie パスと一致します。

- cookie-path と request-path は同一です。

- cookie-path は request-path のプレフィックスであり、cookie-path の最後の文字は %x2F ("/") です。

- cookie-path は request-path のプレフィックスであり、cookie-path に含まれていない request-path の最初の文字は %x2F ("/") 文字です。

だから私にはこれは明らかにバグです...?

0 投票する
1 に答える
3970 参照

c# - Cookie を httpwebrequest に渡す

HttpWebRequestプロパティを使用せずにCookie を渡すことは可能HttpWebRequest.CookieContainerですか?

何らかの理由で、を含む一部のオブジェクト プロパティにアクセスできませんHttpWebRequest.CookieContainerHttpWebRequestクラスとクラスにアクセスできますCookieContainer

0 投票する
1 に答える
190 参照

c# - cookieContainer HttpWebrequestからWebrowserにWebサイトをロードするにはどうすればよいですか

Httprequest で Web サイトにログインしようとすると、いくつかの情報が返されます。そして、Cookie レスポンスを保存します。ログインの成功をどのように知ることができますか? Cookie によって新しいフォームで Web サイトを読み込もうとしましたが、ログインしていません。だから私を助けてくれませんか...これは私のコードです:

ログインのコード:

そして、Cookie リターンでウェブサイトをロードするためのこのコード

助けてください。私はとても努力していますが、成功することはできません。

0 投票する
1 に答える
931 参照

c# - C# での CookieContainer() のコンテンツへのアクセス

わかりました、私はタオルを投げて、知っているかもしれない人々に目を向けました. 私はネットを検索し、いくつかの例を試しましたが、Cookie コンテナーからデータを引き出すことに近づいていません。

コードをデバッグすると、次の変数のエントリ/値を確認できます: CookieContianer > 非パブリック メンバー > m_domainTable > {ドメイン URI} > 値 > エントリのリスト

そこに JSESSIONID というエントリがあります。私がやりたいのは、その特定のエントリを取得して、割り当てられた値を使用できるようにすることだけです。

どうすれば簡単に取り組めるのか、誰かが光を当てることができますか?

どうもありがとう。

==== リクエストの作成方法の例 (RequestItem は別のメソッドから渡されることに注意してください):

0 投票する
0 に答える
93 参照

c# - Properties.Settings.Default CookieContainer が再起動されますが、なぜですか?

シンプルな winform アプリケーションがあります。最初の実行では、ユーザーが Web サイトにログインできるようにログイン画面が実行されます。次のように成功すると、セッション Cookie が保存されます。

それが完了すると、ログイン フォームが非表示になり、新しいメイン フォームが実行されます。このメインフォームでは、cookiecontainer が読み取られ、再度保存されます。

魅力のように機能します。セッション Cookie はまだそこにあり、すべて問題ありません。その後、次のように Cookie を使用して、Web サイトに対して新しいリクエストが行われます。

正常に動作します。リクエストが完了し、特定のユーザー関連データが文字列で見つかりました。

しかし、プログラムを再起動すると、奇妙なことが起こります。

プログラムが開始する前に、このコードを実行して、Cookie を調べて初回実行を確認します。

実際、最初の実行後は でProperties.Settings.Default.cookiesはないnullため、メイン フォームは によって開始されProgram.csます。

奇妙なことに、今回はCookieContainerProperties.Settings.Default.cookiesオブジェクトを返します... Cookie はありません

私のアプリケーション設定は、初回実行時にのみ開かれるログインフォームにのみ保存されるため、その理由はわかりません。このような奇妙なことをしている cookiecontainers を経験した人はいますか? おそらく私のコードで何かをチェックする必要がありますか? 乾杯。

0 投票する
1 に答える
155 参照

c# - これは CookieContainer のバグですか?

私がやっていること:
私は「webscraper」(マルチスレッド) を開発しています。
ページからデータを抽出する前にフォームを送信する必要があるため、レイアウトは次のようになります。

  1. example.com/path/doc.jsp (私のデータ) への GET リクエスト。
  2. ドキュメント ソースに確認フォームが存在するかどうかを確認します。はいの場合はステップ 3 に進み (データが存在しないため、最初にフォームを送信する必要があります)、そうでない場合は戻ります (送信するフォームがなく、データがここにあるため)。
  3. example.com/path/sub/other.jsp への GET リクエスト (必要なキー値)。
  4. example.com/path/submit.jsp への POST 要求 (値の送信)。
  5. POST リクエストからの応答を確認し、OK の場合は 6 に進み、そうでない場合は 1 に戻ります。
  6. example.com/path/doc.jsp への GET リクエスト (再び私のデータ。フォームを送信したため、私のデータが表示されます)。

POST リクエスト (ステップ 4) からの応答でステップ 1 に戻るように指示された場合を除いて、すべて正常に動作しています。

問題:
フォーム内の値の 1 つを Cookie から抽出する必要があるため、GetCookies()関数を使用しますが、前述のように、応答でステップ 1 に戻るように指示された場合、すべての要求 (GET と POST の両方) )その後、Cookieが欠落しています(そして奇妙なものが追加されました)。以下の画像を参照してください。

クッキーエラー
画像説明:

  • 最初の呼び出しは、私のデータがある doc.jsp への GET 要求です。
  • 2 番目の呼び出しは、確認フォームが doc.jsp ソース コードに存在するため、other.jsp 要求です。
  • 3 番目の呼び出しは、すべての値を送信するときです。
  • 4 回目の呼び出しは、doc.jsp への GET 要求です。これは、送信フォームの応答 (3 回目の呼び出し) でプロセスを繰り返すように指示されたためです。基本的に、4º ~ 6º の呼び出しは 1º ~ 3º と同じですが、cookie が fu**ed されています。


私のコード:


主なプログラム:


私の環境:

  • Visual Studio Professional 2013 を使用しています。
  • ターゲット フレームワークは .NET Framework 4.5 です。
  • プラットフォーム x86 (デバッグ)。
  • WebClientEx は、Cookie を操作するための WebClient の拡張バージョンです。ここから入手 PasteBinBugFix_CookieDomain()この質問から)を実装しようとしましたが、その修正を行っても、この問題は引き続き発生します。
  • すべての URL に http:// プレフィックスが含まれています。

  • Fiddler を使用してリクエスト情報を確認しました。

  • 英語は私の母国語ではありません... '-'