0

この例を単純にするために、私のサイトには UsersController と VenuesController という 2 つのコントローラーがあり、どちらにも独自の "管理者権限" が関連付けられています。

したがって、ユーザーは「ユーザー」管理者権限および/または「会場」管理者権限を持つことができます(これらは私のデータベースのユーザーテーブルのブールフィールドです)

ユーザーがログインし、私はセッションで彼/彼女の権限を持っています。

ユーザーがコントローラーを使用するための正しい権限を持っていることを確認するために、コントローラーをカスタム属性で装飾したいと考えています。UserPermissionAttribute と VenuePermissionAttribute を作成したくありません。理想的には、bool プロパティを取り、それが true であることを確認する単一の属性が必要です。

[CheckPermissionAttribute(_userSession.AdminPermissions.Users)]
public class UsersController : Controller
{

}

[CheckPermissionAttribute(_userSession.AdminPermissions.Venues)]
public class VenuesController : Controller
{

}

これを達成することは可能ですか、または同じ結果を達成するために PostSharp などを検討する必要がありますか?

4

1 に答える 1

0

パラメータを使用して属性を作成できます。アクションフィルターパラメーターは、アクションフィルターのプロパティです。

ただし、 AuthorizeAttributeを使用してユーザーロールを作成し、標準的なアプローチを使用することをお勧めします

于 2012-10-11T22:18:28.077 に答える