以前在.net Framework 4.6中,我的代码如下: 要获取特定用户的角色:
using System.Web.Security;
//......
var userRole = Roles.GetRolesForUser(userName);
To get all roles:
var roles = Roles.GetAllRoles();
但在将我的 Web 应用程序项目升级到 .net v6(核心)之后,我正在修复类库中的依赖项和代码,并且到目前为止我还没有找到 System.Web.Security.Roles 的替代方案。我在谷歌上搜索,但我发现的只是关于使用 .net core 的身份角色,但这也需要数据库更改,所以不期待身份问题。 请让我知道可能的解决方案。
您可以注入
RoleManager
并在 ASP.NET Core 中获得如下所示的角色:
public class TestController
{
private readonly RoleManager<IdentityRole> _roleManager;
public TestController(RoleManager<IdentityRole> roleManager)
{
_roleManager = roleManager;
}
public void GetAllRoles()
{
var roles = _roleManager.Roles?.ToList();
}
}
请务必在 Program.cs(.NET Core 3.0 以上)或 Startup.cs 中注册 RoleManager:
services.AddIdentity<IdentityUser,IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();