如何将身份用户及其身份角色传递给视图?

Posted

技术标签:

【中文标题】如何将身份用户及其身份角色传递给视图?【英文标题】:How can I pass IdentityUsers with their IdentityRoles to the View? 【发布时间】:2021-04-20 00:52:27 【问题描述】:

我想在视图中显示用户及其 IdentityRoles,我该如何实现?

UserController.cs

namespace WebApplication.Controllers

    public class UserController : Controller
    
        private readonly UserManager<ApplicationUser> _userManager;

        public UserController(UserManager<ApplicationUser> userManager)
        
            _userManager = userManager;
        

        [HttpGet]
        public  IActionResult Index()
        
            var users =  _userManager.Users;
            return View(users);
            
    

AplicationUser.cs

namespace WebApplication.Models

    public class ApplicationUser : IdentityUser
    
       
    

我的数据库中的表

我想要达到的结果

【问题讨论】:

【参考方案1】:

获取角色:

List<string> roles = _userManager.GetRoles(userId).ToList(); // for example:   "Admin", "HelpDesk" 
string roleDisplay = string.join(", ", roles); // "Admin, HelpDesk"

然后您可以将角色存储在模型上:

namespace WebApplication.Models

    public class ApplicationUser : IdentityUser
    
       string Roles  get; set; 
    

终于在视图中:

<td>@Model.Roles</td>

【讨论】:

以上是关于如何将身份用户及其身份角色传递给视图?的主要内容,如果未能解决你的问题,请参考以下文章

将电子邮件传递给 ResendEmailConfirmation 模型/视图 - 身份

Django-为啥内置身份验证登录功能在成功登录网址后未将有关用户的信息传递给

将 Windows 用户“令牌”传递给 WCF 进行身份验证

如何配置 ActiveMQ 以将“匿名”用户和角色分配给未经身份验证的用户

使用 MEAN + Passport 根据用户角色更改视图

如何让任何视图知道用户角色(ASP.NET MVC 身份)已更改,以强制任何用户在浏览时注销?