0

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インターフェイスを実装する方法についてのアイデアはありますか?

4

1 に答える 1

0

さて、私の場合に私がしたことをあなたに知らせるためだけに:

私たちのルートはリクエストの形式である ため、リクエストからhttp://[tenantName].[domain]/[App]/[Area]取得することになりました。これは一意であり、テナントとそれがパラメータとして提供されているため、テーブルで選択を行うことができます。[tenantName]UserNameUsersInTenants'

追加情報を渡す方法としてCookieを使用して、まったく同じことを行うことができます。

したがって、Cookieを使用してリクエストにアクセスできますが、私が調査したところ、ほとんどの場合、セッションはまだ初期化されていません。

それが役に立てば幸い!

于 2012-11-01T15:54:25.930 に答える