从.net framwerok升级到.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 v6(核心)之后,我正在修复类库中的依赖项和代码,并且到目前为止我还没有找到 System.Web.Security.Roles 的替代方案。我在谷歌上搜索,但我发现的只是关于使用 .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 Core 3.0 以上)或 Startup.cs 中注册 RoleManager:

services.AddIdentity<IdentityUser,IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>();
© www.soinside.com 2019 - 2024. All rights reserved.