【问题标题】:2 sets of Custom Membership in ASP .Net MVCASP .Net MVC 中的 2 组自定义成员资格
【发布时间】:2012-09-24 10:42:48
【问题描述】:

我可以很容易地设置自定义会员资格,但是如果我需要两组,即控制面板的管理员和登录客户的注册,该怎么办。这意味着要从两个单独的表中获取用户。我的问题是如何将两者集成以通过 1 个自定义成员进行控制,以及如何在控制器上为 2 个进行身份验证?

【问题讨论】:

  • 在我看来,这更像是两个不同的角色,而不是两个不同的成员资格。您不能简单地使用管理员和客户角色来区分您的用户吗?

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


【解决方案1】:

您不会以这种方式分隔用户,而是实现custom role provider 并将这些角色分配给用户。因此,假设您创建了两个角色 adminuser,您可以像这样为控制器设置一个属性:

管理页面控制器

[Authorize(Roles = "Admin")]
public ActionResult AdminAction() { }

用户页面控制器

[Authorize(Roles = "User")]
public ActionResult UserAction() { }

如果您希望您的管理员查看所有登录的用户页面,您只需将 user 角色分配给您的管理员即可。

【讨论】:

  • 这很好,我的设想是,但我对如何定义角色一无所知,我不想创建角色表,如果可能的话想更改自定义成员资格的 ValidateUser()检查哪个表用于管理员/用户并在此处手动设置角色,可能吗?
  • @user1166905 您可以创建一个自定义的MembershipUser (stackoverflow.com/questions/912121/…),该属性具有Roles 属性(可能是逗号分隔的字符串),该属性在您的ValidateUser() 方法中设置,具体取决于它们的来源从。然后您可以创建一个自定义属性 (codeproject.com/Articles/2933/Attributes-in-C),该属性会将角色名称作为字符串,然后查询您的自定义用户类以获取相应的角色。
猜你喜欢
  • 2012-01-08
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
相关资源
最近更新 更多