asp.net mvc3,来自数据库的角色

时间:2012-10-02 12:14:07

标签: asp.net-mvc asp.net-mvc-3 authorization

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

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

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

[Authorize(Roles = Roles.AdministratorRole)]

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

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

我该怎么办呢?

由于

2 个答案:

答案 0 :(得分:3)

ASP.Net使用Provider模型进行成员资格和角色。如果您正在做自定义的事情,那么您只需创建一个Custom RoleProvider

答案 1 :(得分:2)

您可以实施RoleProvider

  

ASP.NET角色管理使您可以轻松使用多个   ASP.NET应用程序的不同提供程序。你可以使用   提供的.NET Framework附带的配置文件提供程序,   或者你可以实现自己的提供者。

     

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

     

您需要将角色信息存储在非数据源中   由.NET Framework附带的角色提供程序支持,例如   作为FoxPro数据库,Oracle数据库或其他数据源。

     

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