2010-12-02 9 views
1

私はこれにはかなり新しいので、他に誰にも質問する必要はありません。私はいくつかのWeb廃棄ソフトウェアのためにプログラムでWebページ(C#)にアクセスしようとしています。私はHttpWebResponseとHttpWebRequestクラスを使ってWebページフォームからログインを行うプロセスを理解しましたが、2段階のログイン手順を持つWebサイトがあります。ポップアップ認証を処理する方法は?

最初のログインはポップアップを介して行われます。バックグラウンドでWebページが読み込まれず、認証が必要であることを示すポップアップダイアログが表示され、ユーザー名とパスワードの入力が求められます。

最初のログインを通過した後、2回目のログインは、私がすでに学んだことから自分自身を処理できるはずのWebフォームです。

私の質問:プログラムによるポップアップ認証要求のログイン情報を提供するにはどうすればよいですか?

EDIT

さらに詳しい情報を提供してください。 Fiddlerは、Webサイトにアクセスしようとするときに、ホストをCONNECTとします。

EDIT

は、私は以下のMrEyeの答えを使用しようとしましたが、それは、もう少し私を得るように見えたものの、まだハングアップしました。一部のGoogleの仕事の後、私は次のコードを追加することによって、それを回避する方法を見つけたので、私は、証明書の問題をのgettinた:

ServicePointManager.ServerCertificateValidationCallback += 
      delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) 
     { 
      return true; 
     }; 

今、私は値でSystem.Net.WebExceptionを得ている「リムーブサーバーがエラーを返しました:(401 )Unauthorized。 "例外のStatusはProtocolErrorですが、それ以上は取得できませんでした。私は、提供されているユーザー名/パスワードが有効であることを確かに知っています。

+0

401 HTTPレスポンスは、リモート・サーバは、あなたがそれに提出した資格情報私はあなたを知っているを拒否したことを示しますあなたが正しいと確信している、特定のことが確実であると言った)。 HttpWebRequestのコードを投稿できますか? – MrEyes

答えて

1

NetworkCredentialオブジェクトを作成したHttpWebRequestオブジェクトのCredentialsプロパティにアサインするだけです。たとえば:あなたはあなたに接続しているサーバーに応じて、

myWebRequest.Credentials = new NetworkCredential("username","password"); 

も必要な場合があります

myWebRequest.PreAuthenticate = true; 
+0

最終的には動作するようになりました。私が提供していた資格情報とは何の関係もなく、正しいものでしたが、リダイレクトを許可する必要があり、URLが少し間違っていました。ありがとう、トン! – Anthony

関連する問題