我需要为 MultiTenant Web 应用程序开发自定义 RoleProvider。在数据库级别,我们有一个将用户与角色与租户相关联的表。
我的问题是 RoleProvider 获取用户角色只是将用户作为参数传递,我们需要考虑租户。
在 RoleProvider 实现中,我们有:
public override string[] GetRolesForUser(string username)
{
//Code to retrieve roles from repo
}
由于角色适用于特定租户中的用户,我们需要:
public override string[] GetRolesForUser(string username, int tenantId)
{
//Code to retrieve roles from repo
}
当前租户存储在 ControllerBase 类中(所有控制器都继承自该类)。
Membership 和 Role Providers 在一个单独的项目中,所以我看不到使用当前租户的方法。我想我可以在 web 应用程序项目中创建我的自定义 RoleProvider。
关于如何实现将租户作为输入的一部分的 RoleProvider 接口的任何想法?