2

私のアプリケーションでは、役割ベースの承認を設定する必要があります。オンラインで入手できるサンプルがいくつかありますが、私の要件は少し異なります。私には、マネージャー、管理者、提出者などの役割があります。次に、地域マネージャー、国マネージャー、地域管理者、国管理者、地域提出者、国提出者などのサブ役割があります。役割とサブ役割のようなものです。

私の質問は、.net MVC でこれを設計するとき、サブロールをロールと見なし、リージョンとサブリージョンに基づいて 10 の異なるロールを定義する必要があるか、または管理者、提出者、マネージャーなどのロールをグループ化してサブロールを処理する必要があるかです。コードで個別に?

正しいデザインは?

私が見ることができるサンプルはありますか?

ありがとう。

4

1 に答える 1

2

多くのアプリで同じ状況に悩まされてきました。私の役割にはさまざまな名前がありますが。あなたの命名構造を使用して、私はあなたの提案の以前の構造に従う傾向があります.

ユーザーが次の役割にある場合: マネージャー、国。

ユーザーは [Authorize(Roles = "Manager, Regional")] でマークされたアクションで引き続き許可されますが、[Authorize(Roles = "Regional Manager")] でマークされたアクションでは許可されません。

[Authorize] 属性を使用して役割を禁止する方法を見つけることができませんでした (役割に含まれていない場合、または役割と役割に含まれている場合など)。

別の考えとして、マネージャーに固有のコントローラーがある場合は、コントローラーとアクションの [Authorize(Roles = "Manager")] 属性を [Authorize(Roles = "Regional")] または [Authorize(Roles = 「国」] 必要に応じて。

これは、ユーザーが両方の役割にいる必要があるいくつかのアクションで、(たとえば)「マネージャー」と「地域」の両方の役割にある場合にのみ、ユーザーを許可すると思います。このようにして、「マネージャー」、「地域」、および「国」の役割を分離することができます。これにより、必要に応じてユーザーをロールに簡単に割り当てることができます。

于 2013-07-02T08:14:40.263 に答える