18

コントローラー クラスのデフォルトのロールを「管理者、コンテンツ エディター」にしたい

[Authorize(Roles = "Administrators, Content Editor")]

上記の属性でコントローラーを装飾することでこれを行いました。ただし、すべての人が利用できるようにしたいアクションが 1 つあります (つまり、「表示」)。全員 (完全に権限のないユーザーを含む) がこのアクションにアクセスできるように、ロールをリセットするにはどうすればよいですか?

注: 上記の authorize 属性を使用して、他のすべてのアクションを装飾できることはわかっていますが、常にそれを行う必要はありません。コントローラーのすべてのアクションをデフォルトでアクセスできないようにして、誰かがアクションを追加した場合、それを一般に公開するために熟慮した決定を下さなければならないようにしたいと考えています。

4

3 に答える 3

16

MVC4 には、まさにこれを意図した新しい属性があります[AllowAnonymous]

[AllowAnonymous]
public ActionResult Register()

http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx

于 2013-02-18T00:08:29.437 に答える
4

アクション メソッドに Authorize 属性を配置できます。クラスレベルだけではありません。

したがって、属性をコントローラ クラスから、セキュリティで保護したいアクション メソッドだけに移動します。

于 2009-04-23T08:21:51.343 に答える
0

これまでに考えられる唯一の解決策は、別のコントローラーを作成して登録し、匿名アクセス用と承認済みアクセス用に 1 つ持つことですが、それは私が望んでいたほどエレガントではありません。

于 2009-04-23T08:15:50.733 に答える