我正在创建一个asp.net mvc项目,我想管理数据库中的角色。
我有一个带有表的数据库,在表中称为Premissions我有一个列(AdministratorRole),其中包含我的mvc项目的角色,该值将包含类似'Domain\John Smith'
(用户)的内容。我希望我的mvc项目每次启动时检查此列。
在我的mvc项目中,我使用控制器中的Authorize属性:
[Authorize(Roles = Roles.AdministratorRole)]
我正在考虑创建一个接口,以便我可以使用IQueryable
来查询数据库,然后在application_start
方法的Global.asax文件中添加一些内容,以便它首先运行接口并检查所有角色。 (我怎么能这样做?)
这样我们就可以在数据库中而不是在项目代码中维护角色。
我该怎么办呢?
由于
答案 0 :(得分:3)
ASP.Net使用Provider模型进行成员资格和角色。如果您正在做自定义的事情,那么您只需创建一个Custom RoleProvider。
答案 1 :(得分:2)
您可以实施RoleProvider。
ASP.NET角色管理使您可以轻松使用多个 ASP.NET应用程序的不同提供程序。你可以使用 提供的.NET Framework附带的配置文件提供程序, 或者你可以实现自己的提供者。
创建自定义角色提供程序有两个主要原因。
您需要将角色信息存储在非数据源中 由.NET Framework附带的角色提供程序支持,例如 作为FoxPro数据库,Oracle数据库或其他数据源。
您需要使用数据库架构管理角色信息 与发布的提供程序使用的数据库架构不同 使用.NET Framework。一个常见的例子是 已存在于SQL Server数据库中的授权数据 公司或网站。