I was using the WebRequestHandler for setting the CachePolicy and AuthenticationLevel in my full stack .NET application. Now I am migrating my application to .NET core and can't find an alternative to these properties or the WebRequestHandler. Any help? Following is my usage:
var httpClientHandler = new WebRequestHandler
{
UseProxy = true,
UseCookies = false,
CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore),
AuthenticationLevel = AuthenticationLevel.MutualAuthRequired
};
There is no equivalent to CachePolicy in .NET Core. However, .NET Core is equivalent to RequestCacheLevel.BypassCache. I confirmed that in this GitHub issue.
So while there is no built-in CachePolicy, this design enables you to build your own cache on top of HttpClient using any policy you like.
WebRequest in .NET Core offers an AuthenticationLevel property, but that won't help you much if you need to use HttpClient.
You could implement a custom HttpMessageHandler to pass into HttpClient that supports AuthenticationLevel. To make it easier to implement, you could base it off an existing HttpMessageHandler such as the Windows one.