9

我正在使用WebRequestHandler在我的全栈 .NET 应用程序中设置CachePolicyAuthenticationLevel 。现在我正在将我的应用程序迁移到 .NET 核心,但找不到这些属性或 WebRequestHandler 的替代方案。有什么帮助吗?以下是我的用法:

        var httpClientHandler = new WebRequestHandler
        {
            UseProxy = true,
            UseCookies = false,
            CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore),
            AuthenticationLevel = AuthenticationLevel.MutualAuthRequired
        };
4

1 回答 1

7

缓存策略:

.NET Core 中没有与 CachePolicy 等效的功能。但是,.NET Core 等效于 RequestCacheLevel.BypassCache。我在这个 GitHub 问题中确认了这一点。

因此,虽然没有内置的 CachePolicy,但这种设计使您能够使用您喜欢的任何策略在 HttpClient 之上构建自己的缓存。

认证等级:

.NET Core 中的 WebRequest 提供了 AuthenticationLevel 属性,但如果您需要使用 HttpClient,这对您没有多大帮助。

您可以实现自定义 HttpMessageHandler 以传递给支持 AuthenticationLevel 的 HttpClient。为了使其更易于实现,您可以将其基于现有的 HttpMessageHandler,例如Windows 的

于 2017-05-19T02:48:54.557 回答