2

我正在创建一个 asp.net mvc 项目,我想管理数据库中的角色。

我有一个带有表的数据库,在名为 Premissions 的表中,我有一列 (AdministratorRole),其中包含我的 mvc 项目的角色,该值将包含类似'Domain\John Smith'(用户)的内容。我希望我的 mvc 项目在每次启动时检查此列。

在我的 mvc 项目中,我在控制器中使用 Authorize 属性:

[Authorize(Roles = Roles.AdministratorRole)]

我正在考虑创建一个接口,以便我可以使用 aIQueryable来查询数据库,然后在application_start方法的 Global.asax 文件中添加一些内容,以便它首先运行接口并检查所有角色。(我怎样才能做到这一点?)

这样我们就可以在数据库中而不是在项目的代码中维护角色。

请问我该怎么做?

谢谢

4

2 回答 2

3

ASP.Net 对成员资格和角色使用提供者模型。如果您正在做一些定制的事情,那么您只需要创建一个Custom RoleProvider

于 2012-10-02T12:22:56.930 回答
2

您可以实现RoleProvider

ASP.NET 角色管理使您能够轻松地为您的 ASP.NET 应用程序使用许多不同的提供程序。您可以使用 .NET Framework 中提供的配置文件提供程序,也可以实现自己的提供程序。

创建自定义角色提供程序有两个主要原因。

您需要将角色信息存储在 .NET Framework 中包含的角色提供程序不支持的数据源中,例如 FoxPro 数据库、Oracle 数据库或其他数据源。

您需要使用与 .NET Framework 附带的提供程序所使用的数据库架构不同的数据库架构来管理角色信息。一个常见的例子是公司或网站的 SQL Server 数据库中已经存在的授权数据。

于 2012-10-02T12:22:38.993 回答