2011-09-20 15 views
1

私はWCFサービス用のカスタムロールプロバイダを取得しようとしています。これらはIIS 7でホストされていますが、私が何をしても、実際に動作させることはできません。私はちょうどデフォルトロールプロバイダが見つかりません。エラー。私のweb.configは次のようになります:カスタムロールプロバイダを読み込むWCFを取得中にエラーが発生しました

<system.web> 
    <compilation debug="false" targetFramework="4.0" /> 
    <roleManager enabled="true" defaultProvider="CustomValidators.WaveRoleProvider, CustomValidators"> 
     <providers> 
     <clear/> 
     <add name="test" type="CustomValidators.WaveRoleProvider, CustomValidators"/> 
     </providers> 
    </roleManager> 
    </system.web> 

RoleProviderを提供する実際の機能は次のとおりです。

namespace CustomValidators 
{ 
    public class WaveRoleProvider : RoleProvider 
    { 
    public override string[] GetRolesForUser(string username) 
    { 
     return string[0]; 
    } 

    public override bool IsUserInRole(string username, string roleName) 
    { 
     return true; 
    } 

    public override void AddUsersToRoles(string[] usernames, string[] roleNames) 
    { 
     return; 
    } 

    public override string ApplicationName 
    { 
     get 
     { 
     return "test"; 
     } 
     set 
     { 
     } 
    } 

    public override void CreateRole(string roleName) 
    { 
     return; 
    } 

    public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) 
    { 
     return true; 
    } 

    public override string[] FindUsersInRole(string roleName, string usernameToMatch) 
    { 
     return new string[0]; 
    } 

    public override string[] GetAllRoles() 
    { 
     return new string[0]; 
    } 

    public override string[] GetUsersInRole(string roleName) 
    { 
     return new string[0]; 
    } 

    public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) 
    { 
     return; 
    } 

    public override bool RoleExists(string roleName) 
    { 
     return true; 
    } 
    } 
} 

明らかに、ダミーデータを返すのではなく、実際にはこれらのすべてを実際のロジックで埋めることになりますが、少なくともロードする必要があります。

私はこれをチェックしてIISがアセンブリをロードするようにします。クラスまたはアセンブリの名前を変更すると別のエラーが生成されるため、すべてがロードされていることを確認していますが、私は何をしようとすると、私はいつもデフォルトロールプロバイダが見つかりません。私はこれをグーグルで見つけて、Stack Overflowをチェックしましたが、なぜこれがあるのか​​分からないようです。今はクラスがかなり基本的だと分かっていますが、

答えて

1

自分自身の問題を修正しました。問題は、クラスの代わりに私のdefaultProviderのプロバイダの名前を指しておくべきだったということでした。

<system.web> 
    <compilation debug="false" targetFramework="4.0" /> 
    <roleManager enabled="true" defaultProvider="test"> 
     <providers> 
     <clear/> 
     <add name="test" type="CustomValidators.WaveRoleProvider, CustomValidators"/> 
     </providers> 
    </roleManager> 
    </system.web>