バックグラウンド
完全に機能する ASP.net MVC アプリケーション用のカスタム メンバーシップとロール プロバイダーがあります。ただし、最近の要件により、Role プロバイダーを変更して、いくつかの追加機能を許可する必要があります。
デフォルトのプロバイダー (1 人のユーザーが多くのロールを持つことができ、それだけです) とは異なり、私の新しい要件では、ユーザーが会社ごとに異なるロールのコレクションを持つ必要があります。したがって、ある会社ではユーザー アカウントに管理者権限があり、別の会社ではそのアカウントに標準ユーザー権限しかない場合があります...これを可能にするために、既存の usersinrole テーブルを、アプリケーション データに直接結び付けられる追加の 2 に置き換えています。構造と既存の users テーブル。
2 つの追加のテーブルと、それらがスキーマにどのように適合するかを次に示します。
原則として、これはまさに私が必要とすることを行いますが、カスタム ロール プロバイダーの関数の一部を変更して、会社ごとのユーザーのロールのチェックを有効にするパラメーターを含める必要があります。
これらの変更を行い、追加のパラメーターを追加しようとすると、次のエラーが表示されます。
'Public Overrides Function IsUserInRole(username As String, rolename As String, [companyID As Integer = 0]) As Boolean' cannot override 'Public MustOverride Function IsUserInRole(username As String, roleName As String) As Boolean' because they differ by optional parameters.
質問
カスタム ロール プロバイダはデフォルトの RoleProvider クラスから継承するため、これは理にかなっています。