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

相關問題