【发布时间】:2016-09-09 00:48:07
【问题描述】:
我正在尝试在 ASP.NET Identity 中配置基于角色的授权。我想让管理员用户可以看到用户列表及其角色(在“索引”页面上)并更改单个用户的角色(在“编辑”页面上)。
这是我的背景:
modelBuilder.Entity<IdentityUser>()
.HasKey<string>(k => k.Id)
.ToTable("Users");
modelBuilder.Entity<IdentityUserRole>()
.HasKey(r => new { r.RoleId, r.UserId })
.ToTable("UserRoles");
modelBuilder.Entity<IdentityUserLogin>()
.HasKey<string>(f => f.UserId)
.ToTable("UserLogins");
modelBuilder.Entity<IdentityRole>()
.ToTable("Roles");
我在 UsersController.cs 中的索引操作:
public ActionResult Index()
{
return View(db.Users.Include(i => i.Roles).ToList());
}
索引视图:
@model List<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>
//stuff
@foreach (var item in Model)
{
<tr class="index-item" data-href="@Url.Action("Details", "Users", new { id=item.Id })">
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.DisplayFor(modelItem => item.Roles)">
</td>
<td class="index-links">
//stuff
</td>
</tr>
}
</table>
我的角色表:
我的 UserRoles 表:
根据这些表,用户具有“查看者”角色。但是,视图显示的是角色 ID,而不是显示角色名称:
如何让它显示角色名称(在本例中为“查看者”)?
【问题讨论】:
标签: asp.net-mvc entity-framework asp.net-identity asp.net-identity-2