2

ASP.NET アプリケーション用のカスタム ロール プロバイダーを実装しました。System.Web.Security.RoleProvider からクラスを派生させ、すべての抽象メソッドとプロパティを実装しました。web.config で applicationName を使用してプロバイダーを構成しています。

 <roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear/>
    <add name="CustomRoleProvider" type="MvcApplication1.CustomRoleProvider" applicationName="Foo"/>
  </providers>
</roleManager>

ただし、プロバイダーの ApplicationName プロパティが適切に設定されていません。なんで?

4

1 に答える 1

7

System.Web.Security.RoleProvider から抽象メソッドを実装するだけでなく、メソッドをオーバーライドする必要もありますInitialize()。ApplicationName など、System.Configuration.ProviderSettings によって処理されない web.config の provider 要素の属性は、 を介してカスタム ロール プロバイダーに渡されますInitialize()。の実装に以下を追加するInitialize()と、カスタム ロール プロバイダーの ApplicationName プロパティが、web.config の applicationName 属性によって提供される値に設定されます。

   if (config["applicationName"] != null)
       ApplicationName = config["applicationName"];
于 2012-06-12T16:23:18.140 に答える