ASP.NET Core 2.2,HttpClient和RunImpersonated问题

时间:2019-06-10 22:26:35

标签: asp.net-core dotnet-httpclient impersonation asp.net-core-2.2

尝试使用RunImpersonated从ASP.NET 2.2控制器内部对API进行HttpClient调用时遇到一个奇怪的问题。

如果删除了周围的RunImpersonated块,下面的代码将使远程请求很好(这将导致未授权)。

但是...使用RunImpersonated运行时,不会发出请求。它失败并出现FileLoadException,查找“ System.Net.Http,Version = 4.2.1.0,Culture = neutral,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;
        ...
    });

这是在DotNet Core 2.2上运行的AspNet Core 2.2。我还尝试在完整的.NET Framework上运行,并且在模拟运行时出现类似的“找不到DLL”错误。

有人碰到这个吗?

0 个答案:

没有答案