Я создал пользовательский ApiAuthenticationStateProvider
, который после возврата AuthenticationState
по-прежнему указывает
info: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
Authorization failed.
Вот упрощенная версия моей ошибки ApiAuthenticationStateProvider
:
public class ApiAuthenticationStateProvider : AuthenticationStateProvider
{
public override Task<AuthenticationState> GetAuthenticationStateAsync()
{
Console.WriteLine("Getting auth state...");
var claims = new[] { new Claim(ClaimTypes.Name, "[email protected]") };
var authenticatedUser = new ClaimsPrincipal(new ClaimsIdentity(claims));
var authState = Task.FromResult(new AuthenticationState(authenticatedUser));
return Task.FromResult(authState);
}
}
Я могу сказать, что Console.WriteLine
использует моего пользовательского провайдера, но чтобы предоставить полную информацию, вот код, который я использовал, чтобы добавить это в Program.cs
:
builder.Services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();