.NET角色,成员资格,FormsAuthentication,MVC3

时间:2011-11-05 10:14:45

标签: asp.net-mvc-3 authentication authorization membership roles

我正在使用MVC3创建一个Web应用程序。我有一个数据库,其中包含我在应用程序中使用的所有表(包括用户和角色表,这是此问题的焦点)。

我已经(很快)设置了使用SetAuthCookie对用户进行身份验证。但是,由于我的应用程序具有不同的角色,因此我还需要能够在访问特定控制器之前确定用户是否处于特定角色。

我花了最近几天尝试并且未能从这里和一般在线搜索实施各种解决方案。讨论的主题是FormsAuthentication,IIdentity,IPrincipal,MembershipProvider,RoleProvider。经过几次尝试失败后,我完全被所有事情搞糊涂了。

过去我使用ASPNET Membership DB使用默认帐户,因为我根本不需要触摸它,没有问题。但我希望这次我所有的桌子都在同一个DB中。我也希望能用[授权],[角色=“系统管理员”]等装饰控制器。

我知道这个和类似的问题被问了很多,并且有几个资源可用于上述主题,但问题是解决方案是冲突的,或者假设其他相关领域的知识,或存在非标准类,甚至在某些情况下“为了简单起见”提供了一个有缺陷的解决方案。

所以回顾一下:

  • 我有一个空白的MVC3项目。
  • 我有一个包含我的用户表和角色表的数据库(每个用户可以有一个角色)。
  • 我想用[授权],[角色=“系统管理员”]
  • 来装饰控制器
  • 我不在乎解决方案有多复杂。我愿意花费尽可能多的时间来获得最安全,最有效的解决方案。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以编写自定义成员资格提供程序,这是一个解释更多的链接: MVC 3 Customer Membership providers