VC# ベーシック認証でエラーが発生するようになった。

実現したいこと

VC#で今までベーシック認証が正常に動作していたのですが、新しいサーバーに変更したら「System.Net.WebException: 'The remote server returned an error: (401) Unauthorized.'」のエラーが発生して認証が出来なくなった。
通常のブラウザーでは、ベーシック認証が出来るのですが、VC#からでは例外エラーなり終了してしまいます。どなたか原因がわかる方がいましたら教えてください。
サーバーの設定が原因でしょうか?
環境はWINDWS10 です。サーバはリナックス:アパッチサーバーです。

発生している問題・分からないこと

「System.Net.WebException: 'リモート サーバーがエラーを返しました: (401) Unauthorized.'」

エラーメッセージ

error

1「System.Net.WebException: 'The remote server returned an error: (401) Unauthorized.'」

該当のソースコード

private string str_readHtml(string filePath, string userName, string userPassword) { string st_text = ""; //HttpWebRequestの作成 System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(filePath); //基本認証のAuthorizationヘッダを追加する webreq.Headers["Authorization"] = "Basic " + Convert.ToBase64String( System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes( userName + ":" + userPassword)); //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()); st_text = sr.ReadToEnd(); //閉じる sr.Close(); st.Close(); return st_text; }

試したこと・調べたこと

上記の詳細・結果

こちらも試したが結果は同じでした。サーバーの設定に問題があるのかなぁ?
private string str_readHtml_1(string filePath, string userName, string userPassword)
{
string st_text = "";
//HttpWebRequestの作成
System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest)
System.Net.WebRequest.Create(filePath);
//CredentialCacheの作成
System.Net.CredentialCache cache = new System.Net.CredentialCache();
//基本認証の情報を追加
cache.Add(new System.Uri(filePath),
"Basic",
new System.Net.NetworkCredential(userName, userPassword));
//認証の設定
webreq.Credentials = cache;

try { //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); st_text = sr.ReadToEnd(); DateTime remoteDate = webres.LastModified; //閉じる sr.Close(); st.Close(); webres.Close(); } catch (System.Exception e) { Console.WriteLine(e.ToString()); st_text = ""; } return st_text; }

補足

特になし

コメントを投稿

0 コメント