- 題名: WebClient Basic認証(ユーザ名が空)
- 日時: 2012/04/16 13:20:20
- ID: 30324
- この記事の返信元:
- (なし)
- この記事への返信:
- [30325] Re[1]: WebClient Basic認証(ユーザ名が空)2012/04/16 15:04:19
- [30329] Re[1]: WebClient Basic認証(ユーザ名が空)2012/04/16 17:39:30
- ツリーを表示
■No30324に返信(さとすけさんの記事)
> 400が帰ってきてしまいアクセスできません。
どのようなリクエストが送出されているのか、
Fiddler 等で確認しておくと良いかも。
http://msdn.microsoft.com/ja-jp/library/bb250442.aspx
> もし実装方法をぎ存知のかたがいらっしゃればご教授をお願いいたします。
http://www.tt.rim.or.jp/~rudyard/torii009.html
Credentials は使わず、自前で認証ヘッダーを
付けてしまうというのは如何でしょう。
wc.Headers.Add("Authorization: Basic " +
Convert.ToBase64String(Encoding.ASCII.GetBytes(user + ":" + password)));
ピポパさん、魔界の仮面弁士さんお返事ありがとうございました。
@自前で実装 ====================
> Credentials は使わず、自前で認証ヘッダーを
> 付けてしまうというのは如何でしょう。
無事アクセスできました!
とても貴重な情報ありがとうございます。
---修正版ソース---
wc.Headers.Add("Authorization: Basic " +
Convert.ToBase64String(Encoding.ASCII.GetBytes(":" + "pass")));
wc.DownloadFile(
"http://192.168.0.1/log.txt",
"log.txt");
---修正版ソース---
@CredentialCache ====================
同じ400が帰ってしまいました。
ただ実装方法に問題があったかもしれません。
(WebClientは使わないのが正解?)
今後、少し探ってみたいと思います。
---ソース---
WebClient wc = new WebClient();
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("http://192.168.0.1/log.txt"),
"Basic",
new NetworkCredential("", "pass"));
wc.Credentials = myCache;
wc.DownloadFile(
"http://192.168.0.1/log.txt",
"log.txt");
---ソース---
@Fiddler ====================
パケットキャプチャを実装するクラスでしょうか。
こちらも今後に生かせるように調査してみます。
分類:[.NET]
ユーザ名が空でパスワードは設定されているWebサーバ(ルータ)へ アクセスするプログラムを作成していますが、 400が帰ってきてしまいアクセスできません。 もし実装方法をぎ存知のかたがいらっしゃればご教授をお願いいたします。 --- ソースここから --- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace get { class Program { static int Main(string[] args) { WebClient wc = new WebClient(); wc.Credentials = new System.Net.NetworkCredential("", "pass"); wc.DownloadFile( "http://192.168.0.1/log.txt", "log.txt"); wc.Dispose(); return 0; } } } --- ソースここまで --- なお、以下の2パターンでは正常動作を確認しました。 + 認証がないページ + Basic認証でユーザ名とパスワードが設定されているページ