21

When inside an ASP.NET page, module or handler with an HttpContext present, how do I get a reference to the current RoleProvider instance?

It's the provider used for authorization when the IPrincipal.IsInRole(..) method is called. By default, or from configuration, my provider seems to be a SqlRoleProvider instance by an error given when I'm running the app.

I want to inspect the type of provider at runtime to provide feedback on which one is actually being used.

John K
  • 28,441
  • 31
  • 139
  • 229

1 Answers1

32

The static Roles class has a Provider property on it which you can use to reference the current provider.

Roles.Provider

and if you are using a custom RoleProvider, you can cast it in order to access custom functionality.

((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs();
Josh
  • 44,706
  • 7
  • 102
  • 124
  • Thanks! That info helped me determine my role provider is actually 'WebMatrix.WebData.SimpleRoleProvider' instead of the expected 'System.Web.Security.SqlRoleProvider'. Whew! Cheers. – John K Feb 12 '11 at 04:27