1

HttpWebRequest の認証時に問題が発生しました

リモート サーバーがエラーを返しました: (401) 権限がありません。

これは私のコードです:

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
NetworkCredential networkCredential = new NetworkCredential(username, password);

WebRequest http = HttpWebRequest.Create(new Uri(url));

http.Timeout = timeout;
http.PreAuthenticate = true;
http.Credentials = networkCredential;

try
{
    HttpWebResponse ws = (HttpWebResponse)http.GetResponse();
    Stream str = ws.GetResponseStream();

}
catch (WebException ex)
{
    Console.WriteLine(ex.Message);
}

そして、別の方法で承認を設定しようとしました:

string credentials = String.Format("{0}:{1}", username, password);
byte[] bytes = Encoding.ASCII.GetBytes(credentials);
string base64 = Convert.ToBase64String(bytes);
string authorization = String.Concat("Basic ", base64);
http.Headers.Add("Authorization", authorization);

しかし、それも役に立ちませんでした。

4

1 に答える 1

0

企業ネットワークを使用している場合、想定しているエンド Web サーバーではなく、401 を提示するプロキシ サーバーである可能性があります。心に留めておきます。

Basic から NTLM に認証を設定してみてください

接続しているアプリケーションとネットワーク構成に関する大量の情報がなければ、推測にすぎません

于 2015-10-27T03:41:58.847 に答える