/ /資格情報を使用したC#コンソールアプリケーションからのWeb API呼び出し-c#、cors、asp.net-web-api2、dotnet-httpclient

c#、cors、asp.net-web-api2、dotnet-httpclientなどのC#コンソールアプリケーションからのWeb APIコール

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
}

見る