首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序架构-管理员注册和管理

应用程序架构-管理员注册和管理
EN

Stack Overflow用户
提问于 2013-08-11 00:43:43
回答 1查看 93关注 0票数 4

不知道这是不是个合适的问题。不过,现在开始了。

我目前正在为客户开发一个项目,ASP.net 4.5 MVC4剃须刀。这基本上是他们的客户的一个网络商店,他们注册了一个帐户,并从他们的目录中订购产品,以便在他们举办的活动中使用。客户必须登记由我的客户员工创建的事件,以便下订单。站点上有一个管理员门户,他们在那里登录并创建、管理和更新事件、订单和用户。怎么做不是我的问题。我的问题是:

我怎么能有管理员登记呢?!你们用了什么程序?我不认为硬编码密码是好的,我肯定我想把它和正常的用户注册分开。我计划使用SimpleMembership。我的意思是,一个现有的管理员可以创建管理帐户,但是第一个管理帐户呢?鸡肉还是鸡蛋?这有道理吗?

编辑:我在这方面做了相当多的功课,我的意思是,我可以在webpages_Roles中手动添加一个Admin角色,并将其手动添加到第一个管理员中,并让后续管理员通过管理员添加该角色,但前几步听起来有点麻烦。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-11 07:43:03

正如您在编辑部分中所说的,您应该首先手动添加一个管理帐户。之后,您可以简单地将Admin角色授予任何注册用户,如下所示:

代码语言:javascript
复制
Roles.AddUserToRole(model.UserName, "Admin");  

如果您希望您的管理员与其他用户完全分离,则应该向普通用户添加一个user角色,而不要让管理员拥有这个角色。

因此,只需在Register操作AccountController.cs方法中添加上述代码即可。

代码语言:javascript
复制
    [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);
    }

并负责自己创建管理帐户,或者让他们注册为普通用户,并推荐使用followingFirst方法。

代码语言:javascript
复制
Roles.RemoveUserFromRole(model.UserName, "User");
Roles.AddUserToRole(model.UserName, "Admin");

就这样..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18167691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档