我正在编写一个C#应用程序,该应用程序应该将当前用户的凭据(域,用户名和密码)传递给WebClient
。由于某种原因,Web服务返回错误401-未经授权,即使我知道事实,正在访问它的Window用户的凭据与我尝试连接的Web服务中的凭据相同。
var wc = new WebClient();
string jsonbefore = "";
Uri uri = new Uri(ConnectionString);
wc.UseDefaultCredentials = true;
wc.Credentials = System.Net.CredentialCache.DefaultCredentials;
wc.Headers["Accept"] = "application/json;odata=nometadata";
System.IO.Stream response = wc.OpenRead(conn);
StreamReader reader = new StreamReader(response);
jsonbefore = reader.ReadToEnd();
response.Flush();
是否有任何环境/系统设置正在阻止凭据流动?我已经阅读了有关EnvironmentPermission
类的内容,但是我不知道它是否与我的问题有关。
是否有更好,更一致的方法将Windows凭据传递到Web服务?还是有什么方法可以检查DefaultCredentials
中的用户名,密码或域是否为空?