Web services 如何在不使用C#/UWP中的NetworkCredential的情况下访问API?

Web services 如何在不使用C#/UWP中的NetworkCredential的情况下访问API?,web-services,api,http,asp.net-web-api,networkcredentials,Web Services,Api,Http,Asp.net Web Api,Networkcredentials,我得到了一些应用程序的API。 当我使用浏览器访问这些API时,浏览器弹出窗口告诉我填写用户名/密码,然后我尝试填写用户名/密码,发现我通过了验证! 然后我试着写代码 var myClientHandler = new HttpClientHandler(); myClientHandler.Credentials = new NetworkCredential("abc", "!@#"); this._client = new HttpClient(myClientHandler); thi

我得到了一些应用程序的API。 当我使用浏览器访问这些API时,浏览器弹出窗口告诉我填写用户名/密码,然后我尝试填写用户名/密码,发现我通过了验证! 然后我试着写代码

var myClientHandler = new HttpClientHandler();
myClientHandler.Credentials = new NetworkCredential("abc", "!@#");

this._client = new HttpClient(myClientHandler);
this._client.BaseAddress = new Uri("http://api.xxx.com");
var result = await this._client.GetStringAsync("some_api_foo.json");
跑得好

(我们知道如果没有NetworkCredential,将出现401个未经授权的异常)


但我发现官方应用程序可以在用户不登录的情况下访问一些API。它是如何工作的?它使用公共帐户吗?或者有其他方法访问API吗?

它使用Windows对用户进行身份验证,而不要求他们提供凭据

使用Fiddler>检查是否存在授权标头:基本XXXXXXXXXXXXXXXXXXXXXXXX

xxxxxxxxxxxxxxxxxxxxxxxx用户名:密码(Base64
解密它

谢谢,我找到了fiddler授权条件。