Identity API 2.0 检查用户是否是 View 的管理员角色
Identity API 2.0 Check if user is admin role on View
在脚手架局部视图 _Layout.cshtml
中定义了应用程序的导航栏。我想修改它,以便仅在登录用户为 "Admin"
.
时才显示某些链接
在我的 Configuration.cs
迁移文件的 Seed()
方法中,定义如下:
bool AddUserAndRole(ApplicationDbContext context) {
IdentityResult ir;
var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
ir = rm.Create(new IdentityRole("Admin"));
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser() { UserName = "admin", FirstName = "System", LastName = "Administrator" };
ir = um.Create(user, "admin");
if(ir.Succeeded == false) {
return ir.Succeeded;
}
ir = um.AddToRole(user.Id, "Admin");
return ir.Succeeded;
}
如您所见,有一个名为 "Admin" 的角色,新创建的用户已添加到该角色。
也就是说,我在 _Layout.cshmtl
中尝试了几种方法来尝试确定当前用户是否 "Admin"
或
@if(Roles.IsUserInRole(User.Identity.Name, "Admin")) { }
@if (User.IsInRole("Admin")) { }
但 none 似乎有效。我该怎么做?
@if (User.IsInRole("Admin"))
{
<li>@Html.ActionLink("Link Text", "Controller", "Action")</li>
}
这对我有用。
在脚手架局部视图 _Layout.cshtml
中定义了应用程序的导航栏。我想修改它,以便仅在登录用户为 "Admin"
.
在我的 Configuration.cs
迁移文件的 Seed()
方法中,定义如下:
bool AddUserAndRole(ApplicationDbContext context) {
IdentityResult ir;
var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
ir = rm.Create(new IdentityRole("Admin"));
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser() { UserName = "admin", FirstName = "System", LastName = "Administrator" };
ir = um.Create(user, "admin");
if(ir.Succeeded == false) {
return ir.Succeeded;
}
ir = um.AddToRole(user.Id, "Admin");
return ir.Succeeded;
}
如您所见,有一个名为 "Admin" 的角色,新创建的用户已添加到该角色。
也就是说,我在 _Layout.cshmtl
中尝试了几种方法来尝试确定当前用户是否 "Admin"
或
@if(Roles.IsUserInRole(User.Identity.Name, "Admin")) { }
@if (User.IsInRole("Admin")) { }
但 none 似乎有效。我该怎么做?
@if (User.IsInRole("Admin"))
{
<li>@Html.ActionLink("Link Text", "Controller", "Action")</li>
}
这对我有用。