我使用 WebRequestHandler 在我的完整堆栈.NET应用程序中设置 CachePolicy 和 AuthenticationLevel 。现在我将我的应用程序迁移到.NET核心,无法找到这些属性或WebRequestHandler的替代方法。有帮助吗?以下是我的用法:
var httpClientHandler = new WebRequestHandler
{
UseProxy = true,
UseCookies = false,
CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore),
AuthenticationLevel = AuthenticationLevel.MutualAuthRequired
};
答案 0 :(得分:5)
.NET Core中没有与CachePolicy等效的功能。但是,.NET Core等同于RequestCacheLevel.BypassCache。我在this GitHub issue确认了这一点。
因此,虽然没有内置的CachePolicy,但这种设计使您能够使用您喜欢的任何策略在HttpClient之上构建自己的缓存。
.NET Core中的WebRequest提供了AuthenticationLevel属性,但如果您需要使用HttpClient,那么这对您没什么帮助。
您可以实现自定义HttpMessageHandler以传递到支持AuthenticationLevel的HttpClient。为了更容易实现,您可以将其基于现有的HttpMessageHandler,例如Windows one。