私のアプリケーションは.NET 4.7 Web Apiエンティティフレームワーク6です。マルチテナントの.netプロジェクトでロールを実装する最も良い方法は何ですか?
これは私が構築しているサービスツールとしてのソフトウェアです。私のアプリケーションでは、AspNetUserとCompanyの間に多かれ少なかれ多くの関係があります。
ユーザーは多くの企業を持つことができ、企業は多くのユーザーを持つことができます。ユーザーは、使用したい会社に基づいて、異なるロール/権限セットを持つ必要があります。このようなものを実装する最良の方法は何ですか?
私はAspNetUserRolesテーブルにCompanyId列を追加することを考えていました。そのため、ユーザーは関連する企業ごとに異なる役割を果たすでしょう。これは非常に優れた実装であるとは確信できません。承認の仕組みが壊れる可能性があるので、私は物事の仕組みをより明確に理解するまでそれに触れたくありません。
これまでのところ、マルチテナントアプリケーションのリソースベースの承認にはthis guideが見つかりました。それは私が探しているようだが、それは.NET Coreのためであり、.NET 4.7で動作するかどうかはわかりません。
私は.NET 4.7のようなものを見つけることができませんでしたので、スタックオーバーフローコミュニティに手を差し伸べています。
選択した実装で発生した問題については、質問の範囲を絞り込むことを検討してください。 –
@NoRefundsNoReturns私は選択された実装を持っていません、私はどの実装が進んでいくのが最善だろうと頼んでいます。私は出発点で迷っています。 – Suren
アドバイス:UserとCompanyが多対多であることを本当に必要としているかどうかを再評価してください。それを避けることができれば、各社(テナント)がユーザーを所有し、複数の会社に複数のアカウントを持つユーザーを関連付ける必要がある場合に、マルチテナントの共通パターンになります。企業(テナント)間でユーザーを共有できるようにするには、UserとCompany(CompanyUserエンティティ)間の多対1の関係をサポートするためにIdentity Frameworkのほとんどをオーバーライドして書き直し、CompanyUserとRole(CompanyUserRoleエンティティ)。 – chambo