簡體   English   中英

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

[英]Authorization in Blazor WASM - policies don't work

因此,當我將基於策略的授權添加到 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"));
            });

當我查看用戶的“聲明”時,數據庫中的聲明沒有顯示。 他們在那里。

那么,如果我在啟動時聲明了策略,為什么標有上述策略的 razor 頁面會給我這個錯誤?

謝謝大家!!!

我通過在 Main function 中添加以下客戶端的 Program.cs 來使其工作。

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

您在服務器上設置的權限。 這是為客戶做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM