2012-10-02 57 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