在一个组件中,我们可以使用 AuthorizeView
但是当我们需要检查用户是否在代码中被授权时,等效的东西是什么?
答案 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....
}
}