認証が必要なページをダウンロードする認証が必要なページ(ユーザー名とパスワードが必要なページ)をWebRequest、WebResponseクラスを使ってダウンロードする方法を紹介します。この場合、WebRequest.Credentialsプロパティを適切に設定します。 ヘルプによると、NetworkCredentialクラスは、基本認証、ダイジェスト認証、NTLM認証、Kerberos認証に対応しており、SSLクライアント認証などの公開キーに基づく認証方式はサポートしていないとのことです。 次の例では認証が必要なページ"http://localhost/member/"のユーザー名が"username"、パスワードが"password"として、ページの内容を取得しています。 'HttpWebRequestの作成 Dim webreq As System.Net.HttpWebRequest = _ CType(System.Net.WebRequest.Create("http://localhost/member/"), _ System.Net.HttpWebRequest) '認証の設定 webreq.Credentials = New System.Net.NetworkCredential("username", "password") 'HttpWebResponseの取得 Dim webres As System.Net.HttpWebResponse = _ CType(webreq.GetResponse(), System.Net.HttpWebResponse) '受信して表示 Dim st As System.IO.Stream = webres.GetResponseStream() Dim sr As New System.IO.StreamReader(st) Console.WriteLine(sr.ReadToEnd()) '閉じる sr.Close() st.Close() //HttpWebRequestの作成 System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("http://localhost/member/"); //認証の設定 webreq.Credentials = new System.Net.NetworkCredential("username", "password"); //HttpWebResponseの取得 System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse) webreq.GetResponse(); //受信して表示 System.IO.Stream st = webres.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(st); Console.WriteLine(sr.ReadToEnd()); //閉じる sr.Close(); st.Close(); なお、NetworkCredentialコンストラクタの3番目のパラメータにユーザー名が属するドメインまたは領域を指定することもできます。 ここではHttpWebRequest、HttpWebResponseクラスを使用しましたが、WebClientクラスのCredentialsプロパティでも同様に、認証の方法を指定してダウンロードすることができます。 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright(C) DOBON!. All rights reserved.
|