Getを使用してWeb APIサイトを作成しようとしています許可されているメソッド。このサイトは、個人アカウントを使用するデフォルトのテンプレートサイトです。したがって、ユーザー名とパスワードをデータベースに保存します。このWeb APIサイトを呼び出して、HttpClientを介してコンソールアプリケーションでユーザー名とパスワードを渡そうとしています。これについていくつかの方法を試しました。 APIサイトでCORSが有効になっていると思います。不正な結果が出続けます。ここに私が実行しているHttpClientコードがあります、それは完全に有効であると感じており、API側でこのユーザー名とパスワードを処理するために何かを設定する必要があると思いますが、それが場合。
using (var client = new HttpClient())
{
var byteArray = Encoding.ASCII.GetBytes("sampleUser:Test123!");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
client.BaseAddress = new Uri("http://localhost:15198/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
try
{
HttpResponseMessage response = await client.GetAsync("api/Query");
if (response.IsSuccessStatusCode)
{
thing = response.Content.ToString();
}
}
catch (HttpRequestException e)
{
var test = e.Message;
}
}
回答:
回答№1は0サーバーで実行中のWindows認証を想定して、偽装して資格情報を渡す必要があります。
using (new Impersonator(UserName, Domain, Pwd))
{
...http request
}
見る 糸