自定义RoleProvider未被调用

3

我的应用程序有自定义的Role和MembershipProviders。我已经在web.config中注册了它们,但是当我尝试执行if(User.IsInRole("Blah"))时,我的RoleProvider的InitializeIsUserInRole中的断点都没有被命中。 Membership provider正常工作,因此我猜可能是我从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>

还需要做些什么吗?

(这段内容与IT技术无关,我只是翻译了一下)
1个回答

8
< p > <roleManager> 元素的属性 enabled 默认为 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>

1
它必须是某些简单的东西。谢谢。 - Echilon
@Echilon:是的,有时候把“难”的东西做好反而更容易。 :-) - Mithrandir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接