ASP.NET Core 2.2, HttpClient и RunImpersonated Issue - PullRequest
0 голосов
/ 11 июня 2019

У меня странная проблема при попытке использовать RunImpersonated для вызова HttpClient API из контроллера ASP.NET 2.2.

Следующий код сделает удаленный запрос в порядке (что приведет к неавторизованному), если я удалю блок RunImpersonated вокруг него.

Но ... при запуске с помощью RunImpersonated запрос не будет выполнен. Он завершается с ошибкой FileLoadException, ищущей «System.Net.Http, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a»

    WindowsIdentity.RunImpersonated(aWindowsUser.AccessToken, () =>
    {
        var client = new System.Net.Http.HttpClient();
        string resourceUrl = "http://myurl";
        var wreq = new HttpRequestMessage(HttpMethod.Post, resourceUrl);
        wreq.Headers.Add("Accept","application/json;odata=verbose");
        HttpContent body = new StringContent("");
        body.Headers.ContentType = new MediaTypeHeaderValue("application/json");
        var response = client.PostAsync(new Uri(resourceUrl), body).Result;
        var content = response.Content.ReadAsStringAsync().Result;
        ...
    });

Это AspNet Core 2.2, работающий на DotNet Core 2.2. Я также попытался запустить на полной .NET Framework и получить аналогичную ошибку «DLL не найдена» при запуске олицетворения.

Кто-нибудь сталкивался с этим?

...