1

新しいASP.NET MVC-Appで開発を開始しました。ユーザー管理にASP.NET ID 2を使用したいと思います。私は、これが絶対に必要ではないと思うので、役割のことを取り除きたいと思っています。 (私がここで間違っている場合は私を訂正してください)ロールなしでIdentityUserをカスタマイズする

私はこの問題に関する2つの情報を持っています:This official Microsoft-Documentationは、アウトオブボックスのアプローチが満たされていない場合、必要な機能を実装する必要があることを指摘していますすべての要件。他の情報は、カスタムユーザをMicrosoft.AspNet.Identity.EntityFramework.IdentityUserから派生させなければならないということです。私はこのIdentityUserから派生した場合、私は私がそれを必要とするかどうか、私のCustomUser-実装にすべてのこのようなものになりますので、しかし、IdentityUserが私の観点からIdentityUser<string, IdentityUserLogin, IdentityUserRole, IdentityUserClaim>, IUser, IUser<string>

を実装し、これらの情報は、実際には互換性がありません。

アイデンティティ・アーキテクチャを理解しているように、主に2つのセグメントがあります。店舗とマネージャーです。マネージャはアプリケーションとストアに結合され、ストアはマネージャとストレージに結合されます。

ストレージインターフェイスは、期待どおりの柔軟性を備えています。たぶん私はここから始めるべきですが、まだ私は気づいていませんが、IdentityUserから派生したエンティティとしてcustomUserを作成する方法は、ロールへの参照なしにはありません。誰も私の問題が何であるか教えてもらえますか?

この問題に関して私が見つけた唯一のstackoverflow質問は hereです。しかし、私はそれが続くアプローチだとは思わない。

+0

ASP.NET Coreを使用できますか? – Win

+0

あなたは役割を取り除きたいのですが、何を返すのですか? –

+0

私は本当にあなたの方法ではないものを取り除くというこの欲求を理解していません。役割を必要としない場合は、それらを使用しないでください。はい、DBに2つのテーブルがあります。だから何?これらのテーブルは空であり、ほとんどスペースを取らないでしょう(そして、ストレージスペースは今安いです)。それらを消し去ることを熱心に試みることは、時間の無駄であり、それほど成功しません。 – trailmax

答えて

2

まず、本当に役割を取り除くことはできません。それらを使用しないことを選択できますが、AspNetRolesテーブルをまだ持っています。役割の機能が組み込まれているので、それを取り除く方法はありません。役割をカスタマイズして拡張するというアイデンティティは拡張可能ですが、関係は削除できません。 Microsoftのドキュメントは、ここでは間違っているわけではありません。おそらく完全にはっきりしていないかもしれません。ロールを使用したくない場合は、ロールベースの機能を実装する必要はありません。つまり、役割を管理したり、役割をユーザーに割り当てたり、ユーザーが特定の役割を果たしていることを確認する機能を作成する必要はありません。しかし、それはアイデンティティに存在しなくなるコアロール機能を意味するものではなく、単にそれを使用しないことを選択するだけであることを意味します。

第2に、少なくとも権限ベースのアクセス制御が必要な場合は、実際にはロールが必要です。ログインしているすべてのユーザーがログインできる他のユーザーができることがあれば、役割はおそらく必要ありませんが、ユーザーのサブセットに固有の機能があれば、にはロールが必要です。また、役割は主張と同じくらい機能しますが、主張はありません。しかし、アイデンティティには「クレーム」という概念があります。

+0

まず、あなたの答えに感謝します!私は古典的な役割を必要とするアプリケーションを持っています。しかし、「役割」についても、クレームベースのアプローチを取ることはできないのですか?私は両方のアプローチを混在させることはお勧めしません。そして、役割は少なくとも柔軟性が低く、服用可能ではありませんか? – Joshit

+1

すぐに使えますが、柔軟性に欠けるかもしれませんが、あなたが好きな力を十分に取り入れれば、かなり好きになるでしょう。アイデンティティのすべての部分は拡張可能です。クレームは、固有のユースケースを持たないという性質上、より柔軟性があります。あなたはそれらを使用することができますが、あなたはそれらを使用し、あなたの意志にそれらを成形する必要があります。しかし、私は個人的には、既存の役割システムを無視して、代わりに主張の裏に自分のロールシステムを悪い考えだと思っています。重複する機能に終わるだけでなく、そのためのすべてのロジックを担当します。 –

関連する問題