如何检查用户是否在代码中获得授权?

时间:2021-05-28 10:50:47

标签: c# blazor blazor-server-side

在一个组件中,我们可以使用 AuthorizeView 但是当我们需要检查用户是否在代码中被授权时,等效的东西是什么?

1 个答案:

答案 0 :(得分:2)

您可以 inject the AuthenticationStateProvider 进入组件,如文档中所示。

这也有效:

可以使用

AuthenticationState。将 <Router> 包裹在 <CascadingAuthenticationState> 组件中,并在您的组件中执行以下操作:

@code {
    [CascadingParameter]
    private Task<AuthenticationState> authStateTask {get; set;}

   protected override async Task OnInitializedAsync()
    {
        var authstate = await authStateTask;
        var someRole = authstate.User.Claims.Single(c => c.Type == "your_role").Value;

       //if role is OK do something....
    }
}