A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
>HttpOnlyでは…なさそうです。
>別のとこが間違えているんでしょうか。
cookieでセッション管理していない…という可能性も捨てきれないところでしょうかねぇ……。
URLのパラメータにセッション管理用のIDとか入っている…とか。
「HTTP セッション管理」とかで検索するとそれなりに見つかるかと思われます。
IEなどのブラウザでアクセスする際にブラウザの設定で「cookieを受け入れない」とかにしても
ログイン処理がされている場合は、cookie以外での管理がされている……ということになりますね。
色々教えて頂き、本当に助かっております。
同時に、余りのハードルの高さに困惑しております。
・「HTTP セッション管理」について、引き続き調べて行きます。読んでると吐きそうになりますが…。
・「cookieを受け入れない」にした場合、あっさり「セッションタイムアウト」となり、弾き出されます。
本当に踏み入れてはいけない領域に来てしまった気分ですが…ココまで助けて頂いて長期戦になりそうで申し訳ないです。引き続き、頭をクリアにして進めますので、宜しくお願い致します。
No.5
- 回答日時:
WireSharkの使い方に関しては…自力で調べて欲しいところですが……
「WireShark HTTP ヘッダ」辺りで検索すれば、それなりに見つかるでしょう。
で、HTTPレスポンスヘッダのうち、「Set-Cookie」というヘッダを確認し、
HttpOnlyの文字があったらHttpOnly属性付きですから、webBrowser1.Document.Cookie.Replace(";" , ",")ではダメ…ということになります。
set-cookieついに見つけましたぁぁぁっ!
Set-Cookie: PHPSESSID=777444c6076f709bfad988f1a2fd14ba; path=/\r\n
HttpOnlyでは…なさそうです。
別のとこが間違えているんでしょうか。
引き続き何か進展あれば、補足にでも書き足します。
本当にありがとうございます。
No.4
- 回答日時:
お礼と補足、使い切ったらその後が続かないんでしょうが……
>…で…迷い込みました。
では状況が不明です。
HttpOnly属性のcookieだった…ということはありませんか?
# WireSharkなどでwebBrowser1の通信内容確認した方が良いかと。
毎度、お世話になっております。
WireSharkの存在すら知らなかったもので、調べ方が合っているのか微妙に自信薄ですが…。
目的のURLぽいものは、末尾が
.php HTTP/1.1
と、なっており、protocol?もHTTPとなっておりました。
filterをonlyとしてもエラーが出てどうも無い様です。
その為、HttpOnly属性では無いと思われますが、何か間違っておりますでしょうか。
重ね重ね質問をぶつける形になってしまい、恐縮ですが、何卒宜しくお願い致します。
No.3
- 回答日時:
>//を取るとcc.Add(cookie);で強制終了します。
やってみました。
……他にもプロパティを設定しないとダメ…っぽいですね。
で……
「c# webbrowser cookie 取得」で検索して、
http://ycouriel.blogspot.jp/2010/07/webbrowser-a …
なんてのを見つけました。
>cookieクラスのインスタンスを作成して~
ってのは誤り…ですね。
# 必要ななプロパティを設定すればいいんでしょうけど…その情報が取得できるかが問題になる。
webbrowserコントロールで取得したcookieはIEと共通で保存されている……んでしょうかねぇ。
リンク先の最初の例のコードだと、取得できないものがある……らしいです。
# HttpOnly属性のついたもの…ということに。
# cc.SetCookies(webBrowser1.Url, webBrowser1.Document.Cookie.Replace(";" , ","));
# ではダメ…ということになりますかね。
HttpOnly属性については…検索するとそこそこ出てくるでしょう。
PHPですが
http://d.hatena.ne.jp/t_komura/20060812/1155349717
とか。
# HttpOnly属性が使われていない。ということならば、上記のwebBrowser1.Document.Cookie.Replace(";" , ",")でOKなんですかねぇ。
この回答への補足
とりあえず…下記の様に変えました。
CookieContainer cc = new CookieContainer();
cc.SetCookies(webBrowser1.Url,webBrowser1.Document.Cookie.Replace(";" , ","));
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(cookieが必要なURL);
req.CookieContainer = cc;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st);
textBox1.Text = sr.ReadToEnd();
sr.Close();
st.Close();
試しに、
webBrowser1.Url
と
webBrowser1.Document.Cookie.Replace(";" , ",")
は個別に取得した所、無事取得出来ておりました。
…で…迷い込みました。
早速の回答本当にありがとうございます。
リンク先を確認した所…ガッツリ英語ですね…。
いや、なんとなく分かるような気がしないでもないです。
引き続きやってみます。
No.2
- 回答日時:
で、検索してみたら
http://www.atmarkit.co.jp/fdotnet/dotnettips/326 …
なんてのを見つけました。
webBrowser1.Document.Cookieから…ではありませんが。
CookieContainer.Add()で追加する際にURIが必要かも知れません。
# 上記の例だと…リクエスト発行した後(というかレスポンス受けた時)にURIと紐づけてコンテナに記録される……のでしょう。たぶん。
この回答への補足
迷い込みました…ご指摘の通り、.Addの時のuriです。
今の所、回答して頂いた内容から、button1の押下で、
Cookie cookie = new Cookie();
cookie.Value = webBrowser1.Document.Cookie;
CookieContainer cc = new CookieContainer();
// cc.Add(cookie);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(cookieが必要なURL);
// req.CookieContainer = cc;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st);
textBox1.Text = sr.ReadToEnd();
sr.Close();
st.Close();
この様な内容でtextbox1にhtmlの内容を表示させようとしておりますが、cookieを反映させなければセッションタイムアウトが表示されております。
//を取るとcc.Add(cookie);で強制終了します。
uriがそもそも何なのか理解に乏しい状態であり、必要なhtmlのソースからencodeURIComponent($('comment_str').value)との文字列がありましたが、どう反映させれば良いかわかりません。
更なるご教授を頂けませんでしょうか。
先にして頂いた回答と共に、こちらの内容も良く確認させていただきます。
引き続き、迷い込んでしまいましたら、ご助力をお願い致します。
No.1
- 回答日時:
使ったコトはないので、正しいかは微妙ですが……。
# キーワードでWeb検索して確認して下さい。どこかにサンプルもありそうですが。
>取得したcookieをそのままwebrequestに設定しようとすると、
>string型ではダメと言われてしまいます。
cookieクラスのインスタンスを作成して、取得したcookieのstring型データをcookieクラスのValueに設定しておきます。
CookieContainerクラスのインスタンスを作成して、Addメソッドで先ほど作成したcookieクラスのインスタンスをコンテナに追加します。
CookieContainerクラスのインスタンスをHttpWebRequestクラスのインスタンスのCookieContainerプロパティに設定します。
……HttpWebRequestクラスのインスタンスを作成して、CookieContainerプロパティがnullでなければ、そのままAddメソッドでcookieクラスを追加…とかできるかも知れませんね。
# WebRequestクラスだとcookie扱うモノが無いような気がしますけど、その辺りはどうなんでしょう???
素早い回答、いつも本当に助かります。
今リンク先等色々見ております。
まだ解決には至っておりませんが、なんか進んだ様な気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google Drive Google Earth PRO が 次のメツセージが出て開けません 2 2022/10/08 18:46
- Chrome(クローム) Cookieを削除 他サイトでの自動ログインなどの設定も削除されますか パソコン クロームです 1 2022/09/10 21:47
- Chrome(クローム) google earth PROをクリックすると下記の表示がされPROが開きません 2 2022/07/28 10:25
- その他(ブラウザ) 最近、いろいろなブラウザでログインができません。 2 2022/03/29 00:04
- その他(ソフトウェア) FierFox 99.0.1(64ビット) で 時々 Cookie情報が消えます 4 2022/05/03 05:42
- PHP phpでcookieがうまく保存されない 2 2023/08/02 16:40
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- SSL・HTTPS 掲示板サイトへの書き込みができない件(ブラウザソフトを変えてもできない) 2 2022/11/20 10:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
フォームの存在をチェックする方法
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
生成したインスタンスを削除す...
-
「インスタンス」の意味をわか...
-
C#の構造体の開放のしかた
-
インスタンスを共有するには
-
SQLを連続発行する時の正しい(?...
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
エクセル(複数インスタンス)...
-
C#において、同じインスタンス...
-
オブジェクト参照がオブジェク...
-
マルチスレッド間でデータ交換...
-
カンマ区切りの数値文字列を数...
-
データベースから日付型を取得...
-
クラスのインスタンス名をクラ...
-
Objective-C グローバル変数 値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
文字列を日付に変換でParseExce...
-
String a = "a"; と String b =...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
SQLを連続発行する時の正しい(?...
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
C#「オブジェクト参照が必要で...
-
エクセル(複数インスタンス)...
-
VB6.0で、DLLを動的に参照したい
おすすめ情報