在Blazor WASM中,如果想要进行身份验证和授权,可以使用AuthorizationService类和IAuthorizationPolicyProvider接口。如果没有使用授权策略,或者使用了默认的DefaultAuthorizationPolicyProvider,那么DenyAnonymousAuthorizationRequirement错误就会出现。
解决这个问题的方法是在使用AuthorizationService时提供一个正确的AuthorizationPolicyProvider实例,该实例不会添加DenyAnonymousAuthorizationRequirement策略。下面是代码示例:
//创建一个自定义的AuthorizationPolicyProvider
public class MyAuthorizationPolicyProvider : DefaultAuthorizationPolicyProvider
{
public override Task
public override Task GetPolicyAsync(string policyName)
{
//返回一个空的策略,没有要求认证
return Task.FromResult(new AuthorizationPolicyBuilder().Build());
}
}
//使用自定义的AuthorizationPolicyProvider来服务AuthorizationService
builder.Services.AddSingleton
这样,在使用AuthorizationService时,就不会再出现DenyAnonymousAuthorizationRequirement错误了。