2011-02-12 12 views
18

Cuando está dentro de una página ASP.NET, módulo o controlador con un presente HttpContext, ¿cómo obtengo una referencia a la instancia actual RoleProvider?¿Instancia actual de RoleProvider de referencia?

Es el proveedor que se utiliza para la autorización cuando se llama al método IPrincipal.IsInRole(..). De forma predeterminada, o desde la configuración, mi proveedor parece ser una instancia SqlRoleProvider por un error dado cuando estoy ejecutando la aplicación.

Quiero inspeccionar el tipo de proveedor en tiempo de ejecución para proporcionar comentarios sobre cuál se está utilizando en realidad.

Respuesta

29

Tiene una propiedad de proveedor que puede utilizar para hacer referencia al proveedor actual.

Roles.Provider 

y si está utilizando un RoleProvider personalizada, puede echarlo con el fin de acceder a funcionalidades personalizadas.

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

¡Gracias! Esa información me ayudó a determinar que mi proveedor de funciones es en realidad 'WebMatrix.WebData.SimpleRoleProvider' en lugar del 'System.Web.Security.SqlRoleProvider' esperado. ¡Uf! Aclamaciones. –

+4

+1 solo para la referencia "Todas las bases ...". –

Cuestiones relacionadas