试图获得Identity中的所有角色

phy*_*s90 9 c# asp.net asp.net-roles asp.net-identity

我正在尝试获取应用程序中所有角色的列表.我查看了以下帖子获取所有用户...和其他来源.这是我的代码,我认为是我应该做的.

var roleStore = new RoleStore<IdentityRole>(context)
var roleMngr  = new RoleManager<IdentityRole>(roleStore);
List<string> roles = roleMngr.Roles.ToList();
Run Code Online (Sandbox Code Playgroud)

不过,我发现了以下错误:无法隐式转换类型GenericList(IdentityRole)List(string).有什么建议?我正在尝试获取列表,以便我可以在注册页面上填充下拉列表,以将用户分配给特定角色.使用ASPNet 4.5和身份框架2(我认为).

PS我也尝试过Roles.GetAllRoles方法但没有成功.

DSR*_*DSR 19

查看您的引用链接并自行提问,很明显角色管理器(roleMngr)是IdentityRole的类型,因此如果您尝试获取角色列表,则角色必须是相同的类型.

使用varinsted List<string>或使用List<IdentityRole>.

var roleStore = new RoleStore<IdentityRole>(context);
var roleMngr = new RoleManager<IdentityRole>(roleStore); 

var roles = roleMngr.Roles.ToList();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 运行异步:`roleMngr.Roles.ToListAsync();`并使用`Microsoft.EntityFrameworkCore` (2认同)

Sha*_*son 5

如果这是您要查找的字符串角色名称列表,则可以

List<string> roles = roleMngr.Roles.Select(x => x.Name).ToList();
Run Code Online (Sandbox Code Playgroud)

我将亲自使用var,但在此处包括该类型以说明返回类型。