問題タブ [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.
.net - .NET System.Net.CookieContainer はスレッドセーフですか?
- .NET クラス System.Net.CookieContainer はスレッドセーフですか? --更新:ターンキー対応--
- 非同期リクエスト中に変更される変数 (つまり、HttpWebRequest.CookieContainer) に対してスレッドセーフを確保する方法はありますか?
- スレッドセーフクラスを強調する属性はありますか? --更新: MSDN でスレッドセーフについて説明されている場合、おそらくその属性はありません --
- すべての .NET クラスはスレッド セーフですか? --更新:マークが答えた--
マルチスレッド コードの非同期リクエストで CookieContainer を使用するため、これらの質問をします。また、ロック内に非同期リクエストを入れることはできません。F# のように、読み取り専用の "変数" (または不変型) を使用する必要があるのではないでしょうか?
c# - 同じ CookieContainer でサーフィンする
各 Web リクエストに同じ CookieContainer を割り当てて Web サイトを閲覧するにはどうすればよいでしょうか?
.net - httpwebrequest Cookiecontainer
「/」以外のパスを持つ Cookie を処理するにはどうすればよいですか。HttpWebRequest オブジェクトは次のヘッダーを返します。
Cookie コレクションの反復には、「/」のパスを持つ Cookie のみが含まれます。したがって、cookiecontainer には cookie1 と cookie4 しかありません。
残りはなぜ収集されないのですか?「/」以外のパスで Cookie にアクセスするにはどうすればよいですか? それらをすべて1つのコンテナに集めることはできますか?
ありがとう
asp.net - CookieContainerを再利用するときに使用してセッションタイムアウトを決定する方法
最初のリクエストにログインするCookieContainerを再利用する次のコードがありますが、その後のリクエストにはCookieコンテナを使用します。
しばらくすると、サイトがアイドル状態になるとセッションタイムアウトが発生しますが、再度ログインを実行する必要があります。
Q:タイムアウトが発生したかどうかを(Cookieコンテナオブジェクトを使用して)判断できますか、それとも「セッションタイムアウト」などのテキストを含むHttpWebResponseからタイムアウトが発生したかどうかを判断するのが最善ですか。これを行うための最良の方法は何ですか?
そして、このメソッドはコンテナを呼び出します。
c# - CookieContainer のバグ?
CookieContainer がドメインを処理する方法について混乱しているため、このテストを作成します。このテストは、cookieContainer が「example.com」の Cookie を返さないことを示していますが、RFC によれば、少なくとも 2 つの Cookie を返す必要があります。
バグじゃない?
どのように機能させるのですか?
このバグに関する議論は次のとおりです。
http://social.msdn.microsoft.com/Forums/en-US/ncl/thread/c4edc965-2dc2-4724-8f08-68815cf1dce6
c# - .net の (C#) System.Net.Cookie を使用して Cookie 値内のコンマを処理する
Web サイトにアクセスしてログインし、いくつかのタスクを自動的に実行するクライアントを作成していますが、最近、Cookie を更新して (何らかの理由で...) 識別 Cookie 内にコンマを含めました。
たとえば、Cookie の値は次のようになります。
問題は、msdnによると、Cookie の値にコンマもピリオドも使用できないことです。私が探しているのは、この制限を回避する方法、.net の Cookie をカンマで適切に機能させる方法です。サーバーが「SET-COOKIE」ヘッダーをクライアントに送信することがわかりました。それが解析されていると推測していますが、それは明らかにコマンドとセミコロンにも特別な意味を与えているようです (したがって、 .NET 自体内のクラス)。
しかし、IE、FirefoxなどのブラウザはどのようにCookieを適切に処理しますか(ウェブサイトは私がテストしたすべてのブラウザで正常に動作するため、明らかにそうです)これを強制する方法はありますか? .NET での動作?
どんな助けでも感謝します、ありがとう。
- - 編集 - -
いくつかの追加情報:
私のコードは次のようになります。
cookieJar は Program.client で次のように定義されています。
CookieContainer 内のすべての Cookie をループして出力すると、次のような結果が得られます: (Cookie、形式: "name" -> "value")
問題の核心は、コンマとセミコロンが SET-COOKIE ヘッダー文字列の予約文字であるように思われます...しかし、ブラウザはこれをどのように処理するのでしょうか? おそらく自分で文字列を解析できますが、次のような状況を回避する方法がわかりません:(HTTPヘッダー、形式:「名前」->「値」)
ご覧のとおり、expires セクションは次の変数と区別するためにセミコロンの代わりにカンマを探します。私が知る限り、それは次の形式です。
しかし、それが本当なら、値の 1 つの中で発生する可能性のあるコンマを処理するエレガントな方法はありますか?
c# - Web サービス ポート クライアントへの Cookie の追加
メソッドにアクセスするために特定の Cookie を設定する必要がある Web サービスをアプリで使用しています。
wsdl.exe
ツールを使用して作成されたそのサービス用に生成されたラッパー クラスを使用していました。その方法を使用すると、すべてが正常に機能します。
ここで、事前に生成されたクラスの代わりにサービス参照を使用して、同様のことをしたいと考えました。CookieContainer
Web 参照を追加しましたが、生成されたサービス参照ポート クライアントには (または同様のもの)がないようです。
そのクライアントにクッキーを追加する方法を知っている人はいますか?
c# - HttpCookieCollectionとCookieContainerを使用してCookieを送信する
サーバーからリモートサーバーへのHTTPリクエストをトンネリングし、すべてのCookieを通過させたい。そこで、新しいHttpWebRequest
オブジェクトを作成し、それにCookieを設定したいと思います。
HttpWebRequest.CookieContainer
System.Net.CookieContainer
を保持するタイプSystem.Net.Cookies
です。
着信リクエストオブジェクトについて:
HttpRequest.Cookies
System.Web.HttpCookieCollection
を保持するタイプSystem.Web.HttpCookies
です。
基本的にはお互いに割り当てたいのですが、タイプが違うので無理です。それらの値をコピーして変換する必要がありますか、それともより良い方法がありますか?
c# - HttpWebRequestを使用したeBayへのログインは、「使用しているブラウザがCookieを拒否しています」という応答が原因で失敗します
次のコードを使用してeBayアカウントにログインしようとしています。
明らかに、私の実際のユーザー名とパスワードを置き換えます。文字列responseText
を見ると、eBayからの応答の一部が
使用しているブラウザがCookieを拒否しています。
私が間違っていることについて何か考えはありますか?
PSはい、私もeBay APIを使用していますが、これはAPIでやりたいこととは少し異なるものです。
c# - C#: CookieContainer をディスクに書き込み、使用するために再度読み込む
CookieJarCookieContainer
という名前の HttpWebRequest/HttpWebResponse セッションから抽出しました。アプリケーションが実行間で Cookie を保存するようにしたいので、プログラムの 1 回の実行で収集された Cookie が次の実行でも使用されます。CookieContainer
これを行う方法は、どうにかして CookieContainer の内容をディスクに書き込むことだと思います。私の質問は:
- どうすればCookieContainer をディスクに書き込むことができますか? このための組み込み関数はありますか? または、そうでない場合、人々が取ったアプローチは何ですか? これを簡素化するために利用できるクラスはありますか?
- CookieContainer をディスクに書き込んだ後、使用するためにどのようにロードし直しますか?
更新:最初の回答は、のシリアル化CookieContainer
を示唆しています。しかし、私はそのような複雑なオブジェクトをシリアライズおよびデシリアライズする方法にあまり詳しくありません。サンプルコードを教えてください。提案は、利用することでしたSOAPFormatter
。