在使用AuthorizeView时,需要将数组转换为IEnumerable类型的集合,然后再进行授权验证。代码示例如下:
@using System.Linq
@inject AuthenticationStateProvider AuthenticationStateProvider
@code {
[CascadingParameter]
private Task authenticationStateTask { get; set; }
private bool IsAuthorized(string[] roles)
{
var authState = authenticationStateTask.Result;
var user = authState.User;
if (user == null || !user.Identity.IsAuthenticated)
{
return false;
}
var authorized = roles.Select(role => user.IsInRole(role)).FirstOrDefault();
return authorized;
}
}
Hello, Authorized User!
You are not authorized to view this content.
将字符串数组转换为IEnumerable,然后使用LINQ的Select方法来判断用户是否在角色列表中。如果用户在其中一个角色中,则认为其已经通过授权验证。