以前在 .NET Framework 4.6 中,我获取特定用户角色的代码如下所示:
using System.Web.Security;
//......
var userRole = Roles.GetRolesForUser(userName);
// To get all roles:
var roles = Roles.GetAllRoles();
但是将我的 Web 应用程序项目升级到 .NET 6 后,我正在修复类库中的依赖项和代码,但到目前为止我还没有找到
System.Web.Security.Roles
的替代方案。
我在 Google 上搜索,但我发现的只是关于使用 .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 5.0 以上)或 Startup.cs 中注册 RoleManager:
services.AddIdentity<IdentityUser,IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();