Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom RoleProvider Not Called

My application has custom Role and MembershipProviders. I've registered them in web.config, but when I try to do if(User.IsInRole("Blah")), neither of my breakpoints in the RoleProvider's Initialize or IsUserInRole are hit. The membership provider works fine, so I guess there must be something I've missed from web.config. This is what I have:

  <system.web>
    ...
    <membership defaultProvider="MyAppMembershipProvider" userIsOnlineTimeWindow="15">
    <providers>
      <clear />
      <add name="MyAppMembershipProvider" 
             type="MyAppMembership.MyAppMembershipProvider" 
             connectionStringName="MyApp" 
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false" />
      </providers>
    </membership>

    <roleManager defaultProvider="MyAppRoleProvider">
      <providers>
        <clear />
        <add name="MyAppRoleProvider"
             type="MyAppMembership.MyAppRoleProvider"
             connectionStringName="MyApp"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false" />
      </providers>      
    </roleManager>
  </system.web>

Is there something else which I need?

like image 522
Echilon Avatar asked May 13 '26 04:05

Echilon


1 Answers

The attribute enabled of the the <roleManager>-Element defaults to false! Try:

<roleManager enabled="true" defaultProvider="MyAppRoleProvider">
      <providers>
        <clear />
        <add name="MyAppRoleProvider"
             type="MyAppMembership.MyAppRoleProvider"
             connectionStringName="MyApp"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false" />
      </providers>      
    </roleManager>
like image 77
Mithrandir Avatar answered May 15 '26 18:05

Mithrandir