Blazor WASM 中的授权 - 策略不起作用



因此,当我将基于策略的授权添加到Startup.cs文件,然后将AuthorizeView添加到我的Blazor页面时,我会得到一个错误:

crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: The AuthorizationPolicy named: 'SuperAdmin' was not found.
System.InvalidOperationException: The AuthorizationPolicy named: 'SuperAdmin' was not found.
at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData)
at Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore.IsAuthorizedAsync(ClaimsPrincipal user)
at Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore.OnParametersSetAsync()
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle) blazor.webassembly.js:1:14889

但在我的初创公司:

services.AddAuthorization(o =>
{
o.AddPolicy("SuperAdmin", policy => policy.RequireClaim("SuperAdmin"));
o.AddPolicy("CountyAdmin", policy => policy.RequireClaim("CountyAdmin"));
});

当我查看用户的"声明"时,DB中的声明不会显示。不过他们在那里。

那么,如果我在启动时声明了策略,为什么上面标记有策略的剃刀页面会给我这个错误呢?

谢谢大家!!!

我通过在Main函数中添加以下Client的Program.cs来实现它。

builder.services.AddAuthorizationCore(o =>
{
o.AddPolicy("SuperAdmin", policy => policy.RequireClaim("SuperAdmin"));
o.AddPolicy("CountyAdmin", policy => policy.RequireClaim("CountyAdmin"));
});

您在服务器上的设置授权。这样做是为了客户。

最新更新