DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C#でのCookie認証について

環境/言語:[win7 64bit C# NET Framework4.5.1]
分類:[.NET]

現在C#を使って、楽天の商品ページを編集するソフトを作っているのですが
途中でつまずいてしまい、うまくいきません

現状ではHttpWebRequest、HttpWebResponseを使ってログインをして
クッキー認証でログイン後のTOPに行くところまではうまくいきました。

その後商品ページ編集画面に行くとはじかれてしまします。
その際に返されるhtmlはブラウザでログインしていない状態で、
URLを打ち込み編集画面に行く時と同じ内容が返されるので、
おそらくクッキー認証ができないないのかと思います。

何が原因なのか私にはわからないのですが、
それを調べる方法、対策を教えていただきたいです


ログイン後のトップ
https://mainmenu.rms.rakuten.co.jp/
(このURLから始まるページにはクッキー認証で行く事ができた)
編集画面
https://item.rms.rakuten.co.jp/rms/○○○
(ログインしていない時と同じ内容を返される)
■No32484に返信(まーくんさんの記事)
> 何が原因なのか私にはわからないのですが、
> それを調べる方法、対策を教えていただきたいです

Fiddler 等を用いて、ブラウザの場合とのHTTP通信の差異を調査してみるとか…。
■No32485に返信(魔界の仮面弁士さんの記事)
> Fiddler 等を用いて、ブラウザの場合とのHTTP通信の差異を調査してみるとか…。

アドバイス、ありがとうございます!

Fiddlerを使ってリクエストの内容を見比べてみたところ
SessionID: empty
となっており、おそらくここが原因になっているようでした(推測)

調べながらその辺の修正を行ってみます
■No32491に返信(まーくんさんの記事)
> このjavascriptと同じ内容を書き加えて行えばいいと思うのですが、
> 非常に複雑になっておりやる気が・・・w

楽天商品検索APIのように、API 仕様として公開されているものがあれば、
それを利用することになりますし、そうした物がないのであれば、
自作ツールは使わず、ブラウザーで編集することになるでしょう。
(当方は楽天ユーザーでは無く、APIの類があるかどうかも把握していません)

https://webservice.rakuten.co.jp/document/


API として公開されているものであれば、仕様変更時にはアナウンスが
あるはずですが、ブラウザーでの動作を想定しているページの場合、
非ブラウザ(自作ツール)からのアクセスを想定されてはいないでしょうし、
ページレイアウトやスクリプトが、いきなり仕様変更される可能性もあります。

次案としては、WebBrowser コントロールを用いて DOM 操作で処理するとか。
■No32492に返信(魔界の仮面弁士さんの記事)
レス書いていただいてるとも知らずに消してしましまして申し訳ない。

書き込んだ後にjavascriptの内容をいろいろと見ていたのですが、
XMLHttpRequest等の記述がなく、「もしかしてjavascriptで通信してるわけじゃないのでは?」
と思ってRE[3]を削除しました。


Fiddlerでやり取りを見てみると
IEでトップ画面を開く
Host: mainmenu.rms.rakuten.co.jp RUL: / と通信をした後
Host: Tunnel to URL: item.rms.rakuten.co.jp:443 等と通信
となっており、これがどういう経緯で行われているのかがわからないというのが現状です

もう少し調べてみたいと思います


後から見た人でもわかるように消したRE[3]の大まかな内容
>ログイン後のトップ画面の裏ではJavaScriptが動いており、
>そこで通信(item.rms.rakuten.co.jpのクッキーゲット)しているので
>javascriptと同じ内容を書き加えて行えばいいと思うのだが、
>非常に複雑になっており、大変だけどなんかいい手ないですか?

DOBON.NET | プログラミング道 | プログラミング掲示板