在ASP.NET Core 3.0中,Identity框架进行了一些改动,包括对角色管理的一些更改。在2.2版本中,UserManager
方法接收一个用户对象和角色名作为参数,然后返回一个布尔值,指示用户是否属于指定的角色。
在3.0版本中,UserManager
方法被废弃,而被一个新的方法UserManager
所替代。新的方法接收的是角色名的字符串参数,而不是角色对象。
以下是在ASP.NET Core 3.0中解决此问题的代码示例:
using Microsoft.AspNetCore.Identity;
// ...
public class HomeController : Controller
{
private readonly UserManager _userManager;
public HomeController(UserManager userManager)
{
_userManager = userManager;
}
public async Task Index()
{
var user = await _userManager.GetUserAsync(User);
if (await _userManager.IsInRoleAsync(user, "Admin"))
{
// 用户属于Admin角色
}
else
{
// 用户不属于Admin角色
}
// 其他逻辑...
return View();
}
}
请确保将TUser
替换为您在应用程序中使用的实际用户类。