0

我正在开发我的第一个 ASP.Net MVC 4 应用程序,现在坚持使用一个简单的用例。

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

  1. 简单会员或其他 asp.net 会员提供商是我对这个简单场景的唯一选择。
  2. 如果不是,我还有什么其他选项可以[Authorize]用来保护管理员操作
4

1 回答 1

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(); 并且仅在它们包含您要查找的角色时才返回管理视图。

于 2013-01-21T19:44:05.413 回答