从.NET Framework升级到.NET Core后如何获取用户角色列表?

问题描述 投票:0回答:1

以前在 .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 的身份角色,但这也需要数据库更改,所以不期待身份问题。

请让我知道可能的解决方案。

.net asp.net-core upgrade .net-framework-version
1个回答
0
投票

您可以注入

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>();
© www.soinside.com 2019 - 2024. All rights reserved.