如何在asp.net中从用户角色表中获取角色id

如何在asp.net中从用户角色表中获取角色id,asp.net,asp.net-mvc,asp.net-core,Asp.net,Asp.net Mvc,Asp.net Core,我一直在尝试从Identity user角色表中获取角色id。我只能使用 var role = await _userManager.GetRolesAsync(user); 但是我被困在如何获取角色id的问题上。你可以这样做 var roleIds = _userManager.FindById(User.Identity.GetUserId()).Roles.Select(r => r.RoleId); 你可以 var roleIds = _userManager.FindByI

我一直在尝试从Identity user角色表中获取角色id。我只能使用

var role = await _userManager.GetRolesAsync(user); 
但是我被困在如何获取角色id的问题上。

你可以这样做

var roleIds = _userManager.FindById(User.Identity.GetUserId()).Roles.Select(r => r.RoleId);
你可以

var roleIds = _userManager.FindById(User.Identity.GetUserId()).Roles.Select(r => r.RoleId);
如何获取角色id

您可以尝试以下代码段

var roleNames = await _userManager.GetRolesAsync(user);

var roleIds = _roleManager.Roles.Where(r => roleNames.AsEnumerable().Contains(r.Name)).Select(r => r.Id).ToList();
测试结果

正在尝试从标识用户角色表中获取角色id

如果您想直接查询
AspNetUserRoles
表,可以尝试以下方法

插入
ApplicationDbContext

如何获取角色id

您可以尝试以下代码段

var roleNames = await _userManager.GetRolesAsync(user);

var roleIds = _roleManager.Roles.Where(r => roleNames.AsEnumerable().Contains(r.Name)).Select(r => r.Id).ToList();
测试结果

正在尝试从标识用户角色表中获取角色id

如果您想直接查询
AspNetUserRoles
表,可以尝试以下方法

插入
ApplicationDbContext


谢谢,但我收到一个错误,即用户名在当前上下文中不存在。我是新来的,谢谢你,但是我得到一个错误,即用户名在当前上下文中不存在。我是新来的,谢谢你们这么多的工作,但现在我想把这个id添加到一个表中另一个模型我该怎么做更像是对模型的更新它一直说不能将系统集合通用列表字符串转换为字符串。如果我将tolist更改为string,我将无法获取角色id。请帮助谢谢您,这两个都很有效,但现在我想将此id添加到一个表中另一个模型我该如何做更像是对模型的更新它一直说不能将系统集合通用列表字符串转换为字符串。如果我将tolist更改为string,则无法获取角色id。请帮助