For an internal application I’m building I needed to use Basic authentication.
Remark: In case you forgot, Basic Authentication transmits credentials like user ID/password as a base64 encoded string in the Authorization header. This is of course not the most secure way as any man-in-the-middle can capture and read this header data.
If you look around on the Internet, a typical example on how to this in .NET looks like this:
We create a HttpClientHandler, set the Credentials and pass it to our HttpClient as a parameter.
Of course it is even better to not create an HttpClient instance yourself but instead use the HttpClientFactory to create a Named or Typed HttpClient.
But if you try to use the code above in a Blazor application, you’ll end up with the following runtime error:
System.PlatformNotSupportedException: Property Credentials is not supported.
As the HttpClient implementation for Blazor stays as close as possible to the fetch api the browser, you’ll need to take a different approach and set the authorization header directly: