我们正在开发Windows窗体应用程序以向Azure AD验证Windows窗体应用程序。
我有几个问题,网上资源似乎都已经过时了。
正如以下链接所示,我创建了一个webapi和本机客户端api和Windows窗体应用程序。
在web api中,我更新了清单文件,如下所示
“oauth2Permissions”:[
{
"adminConsentDescription": "Allow the application to access ftpwebapi on behalf of the signed-in user.",
"adminConsentDisplayName": "Access ftpwebapi",
"id": "4eebeb18-aee6-408a-bea1-c090766dce23",
"isEnabled": true,
"origin": "Application",
"type": "User",
"userConsentDescription": "Allow the application to access ftpwebapi on your behalf.",
"userConsentDisplayName": "Access ftpwebapi",
"value": "user_impersonation"
}
],
在键下添加我添加了2年的条目,并将webapi添加到本机客户端应用程序。
在Windows窗体中,我在按钮单击事件中添加了以下代码。
private async void button1_Click(object sender,EventArgs e)
{
string authority = "https://login.windows.net/****";
string resourceURI = "https://***.com/WebApplication3";
string clientID = "********-5815-4358-****-*********";
Uri returnURI = new Uri("http://********.com");
AuthenticationContext authContext =
new AuthenticationContext(authority);
AuthenticationResult authResult =
authContext.AcquireToken(resourceURI, clientID, returnURI);
string authHeader = authResult.CreateAuthorizationHeader();
// don't do this in prod
System.Net.ServicePointManager.ServerCertificateValidationCallback =
((s, c, c2, se) => true);
HttpClient client = new HttpClient();
HttpRequestMessage request =
new HttpRequestMessage(HttpMethod.Get, "https://localhost:***/task/api/");
request.Headers.TryAddWithoutValidation("Authorization", authHeader);
var response = await client.SendAsync(request);
string responseString = await response.Content.ReadAsStringAsync();
MessageBox.Show(responseString);
}
到目前为止这是正确的方法吗?
我在
中遇到错误var response = await client.SendAsync(request);
mscorlib.dll中出现'System.Net.Http.HttpRequestException'类型的异常,但未在用户代码中处理
其他信息:发送请求时出错。
答案 0 :(得分:0)
我在正确设置这些变量后运行你的代码,起初我得到了同样的错误。然后我在httpRequestMessage request =new HttpRequestMessage(HttpMethod.Get, "https://localhost:***/task/api/")
中更改了我的请求。
现在它已成功运行,请确保您的网址https://localhost:***/task/api/
正确,请在localhost:***
中仔细检查您的端口。
请阅读一些教程以从here获取更多信息。