3

私のアプリケーションにカスタムロールとMembershipProvidersがあります。私はそれらをweb.configに登録しましたが、if(User.IsInRole("Blah"))を実行しようとすると、RoleProviderのInitializeまたはIsUserInRoleのブレークポイントにヒットしません。メンバーシッププロバイダはうまく動作するので、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>-elementの属性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

+0

@エチロン:ええ、時には "ハード"の権利を得る方が簡単です。 :-) – Mithrandir

関連する問題