大家好日子,
我在为MVC5中的现有用户分配角色时遇到了一些麻烦,这将由管理员从只能由管理员访问的视图中完成到目前为止,我已经在启动时创建了一个角色,并将其分配给了一个超级用户。此后有权将管理员的角色授予其他特定用户。
private void createRolesAndDefaultUser()
{
ApplicationDbContext db = new ApplicationDbContext();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
//Creation of "Admin" role and Default Admin
if (!roleManager.RoleExists("Admin"))
{
//Create "Admin" role
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
role.Name = "Admin";
roleManager.Create(role);
//Create SuperUser/DefaultAdmin
var User = new ApplicationUser();
User.UserName = "superUser@email.com";
User.Email = "superUser@email.com";
string Password = "Password01!";
var superUser = UserManager.Create(User, Password);
//Assign role to superUser
if (superUser.Succeeded)
{
var res = UserManager.AddToRole(User.Id, "Admin");
}
}
}
我在网上看过很多文章,允许在注册时分配角色。由于我不希望用户选择自己的角色,因此SuperUser可以将管理员角色分配给现有用户。
我遇到的问题是如何为用户分配角色,这只能由SuperUser完成?
答案 0 :(得分:0)
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
UserManager.AddToRole(UserManager.FindByName(temp).Id, "Admin");
temp存储将被授予管理员权限的用户的UserName