简单会员管理帐户

时间:2013-01-21 19:31:06

标签: c# asp.net-mvc asp.net-membership

我正在开发我的第一个ASP.Net MVC 4应用程序,现在只停留在一个简单的用例中。

我需要对单个用户(管理员)进行身份验证,以便他/她可以登录管理区域来执行某些任务。虽然ASP.Net互联网项目模板具有使用简单成员资格的帐户控制器,但似乎比我实际需要的更多。例如,我真的不需要用户注册功能和用户角色。我的要求相当简单,只是将一个用户存储在数据库中,给他选项来更新他的信息,如密码,电子邮件等,并授予他访问管理区域(管理员控制器和操作)的权限。 我无法弄清楚的是

  1. 简单会员资格或其他asp.net会员资格提供者是我这个简单方案的唯一选择。
  2. 如果没有其他选项,我可以使用[Authorize]来保护管理员操作

1 个答案:

答案 0 :(得分:1)

您可以构建自定义方法来获取用户及其存储的角色,然后在控制器中对其进行评估。所以,例如:

public ActionResult GetAdminPage()
{
    var loggedInUserName = HttpContext.User.Identity.Name;
    var user = somesortofproviderlookupmethod(loggedInUserName);

    // Assume user is a bool and is true
    if (user)
    {
        return view("AdminPage");
    }
}

我唯一不确定的是HttpContext.User是否需要会员资格。也许有人可以说清楚。如果是这样,也许您可​​以从视图中发送用户名,但当然您信任客户端。那么你如何进行用户身份验证会稍微改变这个答案。

就个人而言,我喜欢会员资格。它干净,简单,快速,如果你最终有额外的要求,可以很好地扩展。使用成员资格做这样的事情会更容易,因为那时你实际上可以使用Roles.GetRolesForUser();如果它们包含您要查找的角色,则仅返回管理视图。