2014-01-28 22 views
3

调用Web API当我打电话给我的WEB API从我的控制台应用程序,我遇到:(401)未经授权错误当从一个控制台应用程序

远程服务器返回错误:(401)未经授权。

此应用程序在运行Interanet(Windows身份验证

  Uri uri = new Uri("http://myServer/api/main/foo"); 
      WebClient client = new WebClient(); 
      client.Credentials = CredentialCache.DefaultCredentials; 

      using (Stream data = client.OpenRead(uri)) 
      { 
       using (StreamReader sr = new StreamReader(data)) 
       { 
        string result = sr.ReadToEnd(); 
        Console.WriteLine(result); 
       } 
      } 

更新

如果我更换

client.Credentials = CredentialCache.DefaultCredentials;

这一行

client.Credentials = new NetworkCredential(username, password);

它工作正常,但我需要当前的凭据自动设置。

任何想法? 在此先感谢;)

回答

2

您使用默认的Windows凭据这里

client.Credentials = CredentialCache.DefaultCredentials; 

指定要使用下面的代码来验证凭据:

var credential = new NetworkCredential(, ,); 

serverReport.ReportServerCredentials.NetworkCredentials = credential; 
+0

感谢您抽出时间,其实我正在使用Windows身份验证 –

相关问题