【发布时间】:2015-01-21 17:09:08
【问题描述】:
使用 ASP.NET MVC5 用户身份,我试图在视图中显示 IdentityUser 的角色名称。
Identity 用户似乎具有 Roles 属性,它表示 IdentityUserRole 的集合,而不是 IdentityRole。区别在于IdentityUserRole 表示IdentityUser 和IdentityRole 之间的关联,而IdentityRole 是实际的Role 模型[+]。显然 IdentityUser 和 IdentityRole 之间没有定义导航。所以我们得到的只是来自IdentityUserRole 的 RoleId。
- 有没有简单的方法来获取角色名称?
- 使用Fluent API,我们是否可以在
IdentityRole和IdentityUserRole之间定义一个虚拟导航属性来轻松获取名称 贯穿整个项目? - 如果是有意为之,不让我们直接获取
IdentityRole有什么好处?
【问题讨论】:
-
我建议您在控制器/操作中获取角色并将其作为属性传递给视图,这意味着您传递给视图的模型的一部分。如果不是,您可能需要扩展 IPrincipal 或 IIdentity 属性以包含角色,然后您可以获得类似 HttpContext.Current.User.Identity.Roles 的内容。
-
我假设您现在已经找到了答案,即使这里什么也没有,所以我想知道它是什么。此时,我将 IdentityRole 对象的字典表示存储在 ViewBag 中,并通过视图代码中的 IdentityUserRole.RoleId 访问它们。它有效,但我对此并不感到兴奋。
标签: entity-framework asp.net-mvc-5 asp.net-identity navigation-properties ef-fluent-api