MultiTenantWebアプリ用のカスタムRoleProviderを開発する必要があります。DBレベルでは、ユーザーとロールとテナントを関連付けるテーブルがあります。
私の問題は、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クラス(すべてのコントローラーが継承したクラス)に格納されます。
メンバーシッププロバイダーとロールプロバイダーは別のプロジェクトに含まれているため、現在のテナントを使用する方法がわかりません。WebアプリプロジェクトでカスタムRoleProviderを作成できると思います。
入力の一部としてテナントを使用してRoleProviderインターフェイスを実装する方法についてのアイデアはありますか?