1

私は MVC3 を学習中で、自分のプロジェクトに独自の MembershipProvider と RoleProvider を実装して、winforms アプリケーションのログインおよびアクセス制限システムで現在使用されている既存のデータベースのテーブルを利用しました。

[Authorize]すべてが期待どおりに機能しますが、コントローラーのアクションのタグに関して何か間違っている可能性があると思います。

次のようなものを使用すると、制限は正常に機能します。 [Authorize(Roles = "Admin, Purchaser")]

ただし、ロール「管理者」と「購入者」の名前はデータベースのロール テーブルにあり、このAuthorizeタグにハードコーディングしたのは「間違っている」ようです。Authorizeこれは、データベース テーブルに新しいロールを追加した場合、関連するタグも変更する必要があることを意味します。

データベース内のロールが頻繁に変更されるわけではありません。私には少し「堅い」ように思えます。

だから私の質問は、私はこれを正しくやっていますか? それを行うためのより良い方法はありますか、それとも MVC プロジェクトでこのシステムを利用する標準的な方法ですか?

どうもありがとう。

4

1 に答える 1

0

はい。デフォルトの承認モデルは柔軟ではありません。しかし、すでに custom があるので、それほど問題なく柔軟にすることができますRoleProvider

トリックは、とGroupの間の中間エンティティを使用することです。ユーザーはグループに属し、グループには役割があります。これを使用して、特定のユーザーが所属している役割を取得したり、その逆を行うことができます。UserRole

于 2012-08-13T08:39:01.787 に答える