背景
我的 ASP.net MVC 应用程序有一个自定义的成员资格和角色提供程序,它运行良好。然而,最近的要求意味着我必须修改角色提供程序以允许一些附加功能。
与默认提供者不同(一个用户可以拥有多个角色,仅此而已),我的新要求需要用户在每个公司拥有不同的角色集合。因此,对于一家公司,用户帐户可能具有管理员权限,但对于另一家公司,该帐户可能仅具有标准用户权限...为此,我将现有的 usersinrole 表替换为直接与我的应用程序数据相关的另外 2 个表结构和现有的用户表。
这是另外 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 类,但我如何(如果可能的话)解决这个问题并将公司 ID 传递给所需的函数?