2011-02-12 45 views
18

當在ASP.NET頁面,模塊或處理程序中出現HttpContext時,如何獲取對當前RoleProvider實例的引用?引用當前RoleProvider實例?

這是在調用IPrincipal.IsInRole(..)方法時用於授權的提供程序。默認情況下,或者來自配置,我的提供者似乎是一個SqlRoleProvider實例,當我運行該應用程序時出現錯誤。

我想在運行時檢查提供程序的類型,以提供關於哪一個實際正在使用的反饋。

回答

29

static Roles class上有一個Provider屬性,你可以用它來引用當前提供商。

Roles.Provider 

如果您使用的是自定義RoleProvider,則可以將其強制轉換爲訪問自定義功能。

((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs(); 
+0

謝謝!這些信息幫助我確定我的角色提供者實際上是'WebMatrix.WebData.SimpleRoleProvider',而不是預期的'System.Web.Security.SqlRoleProvider'。呼!乾杯。 – 2011-02-12 04:27:08