【发布时间】:2011-12-22 14:25:04
【问题描述】:
我正在使用 MVC3 创建一个 Web 应用程序。我有一个数据库,其中包含我在应用程序中使用的所有表(包括用户和角色表,这是本问题的重点)。
我已经设置(非常快)使用 SetAuthCookie 对用户进行身份验证。但是,由于我的应用程序具有不同的角色,我还需要能够在用户访问特定控制器之前确定用户是否具有特定角色。
过去几天我一直在尝试从这里和一般在线搜索中实施各种解决方案,但未能成功。讨论的主题是 FormsAuthentication、IIdentity、IPrincipal、MembershipProvider、RoleProvider。在几次失败的尝试之后,我对一切都感到完全困惑。
过去我使用 ASPNET Membership DB 使用默认帐户的东西,因为我根本不需要接触它,所以没有问题。但我希望这次我的所有表都在同一个数据库中。我也希望我可以用 [Authorize]、[Role="Sysadmin"] 等来装饰控制器。
我知道这个问题和类似问题被问了很多,并且有多种资源可以涵盖上述主题,但问题是解决方案相互矛盾,或者假设了解其他相关领域,或者存在非标准类,甚至在某些情况下“为简单起见”提供有缺陷的解决方案。
回顾一下:
- 我有一个空白的 MVC3 项目。
- 我有一个包含用户表和角色表的数据库(每个用户可以拥有一个角色)。
- 我想用 [Authorize], [Role="Sysadmin"] 来装饰控制器
- 我不在乎解决方案有多复杂。我愿意花费尽可能多的时间来获得最安全、最有效的解决方案。
提前致谢
【问题讨论】:
标签: asp.net-mvc-3 authentication authorization membership roles