3

我的应用程序具有自定义角色和MembershipProviders。我已经在web.config中注册了它们,但是当我尝试执行if(User.IsInRole("Blah"))时,RoleProvider的InitializeIsUserInRole中的我的断点都未命中。成员资格提供者工作正常,所以我想必须有一些我从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> 

是否还有其他我需要的东西?

回答

8

<roleManager>的属性enabled -Element默认为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 2012-02-08 10:04:43

+0

@Echilon:是的,有时候更容易让“硬”的东西正确。 :-) – Mithrandir 2012-02-08 10:22:47