2012-10-02 59 views
2

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

我有一个表中的数据库调用预告我有一个包含我的mvc项目角色的列(AdministratorRole),该值将持有像'Domain\John Smith'(用户)的东西。我希望我的mvc项目在每次启动时检查此列。

在我的MVC项目我使用的控制器的授权属性:

[Authorize(Roles = Roles.AdministratorRole)] 

我想创建一个界面,所以我可以用一个IQueryable查询数据库,然后在全局添加的东西.asax文件在application_start方法中,以便它首先运行接口并检查所有角色。 (我该怎么做?)

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

我该怎么做?

感谢

回答

2

您可以实现一个RoleProvider

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

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

您需要存储的角色信息,是不是 通过提供包含在.NET框架,例如 为FoxPro数据库,Oracle数据库或其他数据源中的角色支持的数据源。

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

+0

感谢您的及时回复,你们是否有任何我可以使用的示例代码?我是asp.net mvc im afriad的新用户。 – Steven

+1

有一个[完整示例](http://msdn.microsoft.com/zh-cn/library/317sza4k(v = vs.100).aspx)从上面的RoleProvider链接链接。 – jrummell

3

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