正如您在编辑部分所说,您应该首先手动添加一个管理员帐户。之后,您可以Admin
像这样简单地将角色授予任何注册用户:
Roles.AddUserToRole(model.UserName, "Admin");
如果你想让你的管理员和其他用户完全分开,你应该user
给普通用户一个角色,不要让管理员有这个角色。
所以,只需将上面的代码添加到Register
action 方法中AccountController.cs
[HttpPost]
[Authorize(Roles="A, Personnels")]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
Roles.AddUserToRole(model.UserName, "User"); // Add this line here...
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
并自己负责创建管理员帐户,或者让他们注册为普通用户并执行以下操作[推荐第一种方法]:
Roles.RemoveUserFromRole(model.UserName, "User");
Roles.AddUserToRole(model.UserName, "Admin");
就是这样...