で処理されませんでした。WindowsフォームアプリケーションをAzure ADに認証するWindowsフォームアプリケーションを開発しています。'System.Net.Http.HttpRequestException'はmscorlib.dllで発生しましたが、ユーザーコード
私はいくつかの問題があり、オンラインのリソースはすべて古くなっているようです。
私はwebapiとネイティブクライアントのapiとwindowsフォームアプリケーションを作成しました。
"oauth2Permissions" 次のように私は、マニフェストファイルが更新されているウェブAPIで
:私は2年間のエントリを追加した[
{
"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"
}
]、
とキーの下に追加すると、 webapiをネイティブクライアントアプリケーションに追加しました。
Windowsフォームでは、以下のコードをボタンクリックイベントに追加しました。
プライベート非同期無効のbutton1_Click(オブジェクト送信者、EventArgsの電子)
{
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応答でエラーをagetting午前= client.SendAsync(要求)を待ちます。
タイプ「System.Net.Http.HttpRequestException」の例外がのMscorlib.dllで発生したが、ユーザーコードで
追加情報を扱っていなかった。要求を送信中にエラーが発生しました。
sendAsyncにtry/catchを追加し、例外コンテンツを送信してください。{ var response = await client.SendAsync(request); (HttpRequestException e) { } Console.WriteLine(e.InnerException.Message); } –