Пользовательский RoleProvider не вызывается - PullRequest
3 голосов
/ 07 февраля 2012

В моем приложении есть пользовательские Role и MembershipProviders.Я зарегистрировал их в web.config, но когда я пытаюсь сделать if(User.IsInRole("Blah")), ни одна из моих точек останова в Initialize или IsUserInRole RoleProvider не будет достигнута.Поставщик членства работает нормально, так что, я думаю, что-то я пропустил в web.config.Вот что у меня есть:

  <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>

Есть ли что-то еще, что мне нужно?

1 Ответ

8 голосов
/ 07 февраля 2012

Атрибут enabled элемента <roleManager> по умолчанию равен false!Попробуйте:

<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>
...