C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: C#で自動ログインを実装にあたって


(過去ログ 123 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■73361 / inTopicNo.1)  C#で自動ログインを実装にあたって
  
□投稿者/ takuya (1回)-(2014/09/17(Wed) 04:53:40)

分類:[C#] 

今C#での自動ログインのURLの取得方法を導き出そうと考えています。

そのサイトが以下のサイトになります。
http://codezine.jp/

導き出したいというのが、サイトでログインボタンを押しその後画面が白くなりログインの情報を入力し、ログインするという流れです。

FireBugを利用してログインのURLを取得しようとしても取得ができませんでした。

こういった場合にどのようにしてログイン処理をする際のURL+パラメータを取得することができるのでしょうか。

その際の解決方法や詳しい答えの導き出し方などを教えてください。
引用返信 編集キー/
■73363 / inTopicNo.2)  Re[1]: C#で自動ログインを実装にあたって
□投稿者/ nobb (60回)-(2014/09/17(Wed) 10:01:40)
No73361 (takuya さん) に返信
> こういった場合にどのようにしてログイン処理をする際のURL+パラメータを取得することができるのでしょうか。

Fiddlerというソフトを使えば目的を達成かな?
http://www.telerik.com/fiddler

日本語表示はできませんが、ちょっとした英語が分かれば特に問題ないと思います。
使い方に関しては、かなり有名なソフトなので検索してみてください。
引用返信 編集キー/
■73364 / inTopicNo.3)  Re[1]: C#で自動ログインを実装にあたって
□投稿者/ 魔界の仮面弁士 (124回)-(2014/09/17(Wed) 10:04:54)
No73361 (takuya さん) に返信
> 今C#での自動ログインのURLの取得方法を導き出そうと考えています。
> http://codezine.jp/

アカウントが無いと試せませんが、多分こんな感じ?

string email = textBox1.Text;
string pass = textBox2.Text;

StringBuilder sb = new StringBuilder();
sb.Append("email=" + Uri.EscapeUriString(textBox1.Text));
sb.Append("&password=" + Uri.EscapeUriString(textBox2.Text));
sb.Append("&utm_source_name=" + Uri.EscapeUriString("codezine.jp"));
sb.Append("&utm_term_name=" + Uri.EscapeUriString("/"));
sb.Append("&ref=" + Uri.EscapeUriString("/"));
byte[] post = System.Text.Encoding.UTF8.GetBytes(sb.ToString());

sb = new StringBuilder();
sb.AppendLine("Content-Type: application/x-www-form-urlencoded");
sb.AppendLine("Referer: http://codezine.jp/");
string header = sb.ToString();

webBrowser1.Navigate("https://codezine.jp/user/login", null, post, header);



> こういった場合にどのようにしてログイン処理をする際のURL+パラメータを取得することができるのでしょうか。
IE や Chrome で、F12 キーを押して管理者ツールを起動し、ログインボタンを
調べてみると、それが <button type="submit"> として実装されている事が分かります。

そして、その上位の form 要素を見てみると、
『<form action="https://codezine.jp/user/login" method="post">』
と記載されていました。これにより、POST 送出時の宛先が判明します。

さらに、その form の配下にあるコントロールを見てみると、
 <input type="text" name="email">
 <input type="hidden" name="utm_term_name" value="/">
 <input type="hidden" name="utm_source_name" value="codezine.jp">
 <input type="password" name="password">
 <button type="submit" value="login">
の 5 つがある事が見てとれます。

ここまでの情報から、上に書いたソースコードを導き出す事が出来ました。
もっとも、それが正しい情報であるかどうかは保証しませんが。
(Cookie やスクリプトが使われているかどうかまでは調べていませんので)


あとは、Fiddler 等を用いて、通常のブラウザーから送出した時のリクエストと、
自アプリから送出した時のリクエストを比較しつつ、ログインが成功するかを
確認すれば、動作検証はできそうです。

まぁ、そういった、非標準的なツールからのアクセスが禁止されていないかどうかは、
規約その他をチェックした方が良いかも知れませんが…。
引用返信 編集キー/
■73369 / inTopicNo.4)  Re[2]: C#で自動ログインを実装にあたって
□投稿者/ takuya (2回)-(2014/09/17(Wed) 13:44:56)
>魔界の仮面弁士様
先程確認した結果、上の方に書かれているコードを流すとうまくいきました。
ありがとうございます。

>nobb様、魔界の仮面弁士様
Fiddlerを使うという件ですが、これからの役にたちそうなので今後勉強していきたいと思います。
回答ありがとうございました。
引用返信 編集キー/
■73370 / inTopicNo.5)  Re[3]: C#で自動ログインを実装にあたって
□投稿者/ takuya (3回)-(2014/09/17(Wed) 13:45:35)
解決しました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -