应用程序体系结构-管理员注册&;经营
本文关键字:amp 经营 注册 程序体系结构 管理员 应用 | 更新日期: 2023-09-27 18:27:06
不知道这是否是一个合适的问题。然而,它来了。
我目前正在为一个客户做一个项目,ASP.net 4.5 MVC4剃须刀。这基本上是一个网络商店,供注册帐户并从目录中订购产品的客户在他们举办的活动中使用。客户必须注册我的客户员工创建的活动才能下单。网站上有一个管理员门户,他们可以登录并创建、管理和更新事件、订单和用户。如何做到这一点不是我的问题。我的问题是:
我到底该怎么让管理员注册?!你们用了什么程序?我不认为硬编码密码是好的,我确信我想把它与正常的用户注册分开。我计划使用SimpleMembership。我的意思是,现有管理员可以创建管理员帐户,但第一个管理员帐户呢。鸡肉还是鸡蛋?这有道理吗?
编辑:我在这方面做了很多功课,我的意思是,我想我可以在网页中手动添加一个管理员角色,然后手动将其添加到第一个管理员,然后让后续管理员由管理员添加该角色,但前几步听起来有点粗糙。
正如您在EDIT部分所说,您应该首先手动添加一个管理员帐户。之后,您可以简单地将Admin
角色授予任何注册用户,如下所示:
Roles.AddUserToRole(model.UserName, "Admin");
如果你想让你的管理员与其他用户完全分离,你应该给普通用户设置一个user
角色,不要让管理员拥有这个角色。
因此,只需在AccountController.cs
的Register
动作方法中添加上述代码
[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");
就是这样…