public async ValueTask <IActionResult> Basic([FromServices] IKeyVaultLogic keyVault) { string authorization = HttpContext.Request.Headers["Authorization"]; if (authorization != null && authorization.StartsWith("Basic ", StringComparison.Ordinal)) { var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authorization.Substring(6))); int x = credentials.IndexOf(':'); if (x > 0) { string user = credentials.Substring(0, x); string password = credentials.Substring(x + 1); var result = await keyVault.AuthenticateBasic(user, password); if (result.success) { return(new ObjectResult(result.token)); } } } HttpContext.Response.Headers["WWW-Authenticate"] = "Basic realm=\"KeyVault basic authentication\", charset=\"UTF-8\""; return(StatusCode(401)); }