方法是否选择退出类级别的AuthorizeAttribute?

时间:2015-05-20 14:56:59

标签: c# .net asp.net-mvc asp.net-web-api

我有一个ApiController类,里面有10个公共方法。

在这10种方法中,9种需要[Authorize(Roles="Admin")]。没有的,不需要任何授权。

如果不是那种不需要授权的单一方法,我会用ApiController装饰[Authorize(Roles="Admin")]类。

我不是在班级,而是使用相同的[Authorize(Roles="Admin")]来装饰所有九种方法,而不是使用[Authorize(...)]来装饰这种方法。

我不喜欢的是,我必须重复九次[Authorize(Roles="Admin")]次。

有没有办法我可以用[Authorize(Roles="Admin")]来装饰这个类,并且只修饰那个不应该[Authorize(Roles="Admin")]的单一方法,其属性类似于&#34 ;不要为此特定方法应用类级别操作过滤器"?

1 个答案:

答案 0 :(得分:10)

您可以使用[AllowAnonymous]属性。例如,当网站处于预览状态时,我已经在登录操作上执行了此操作,因此任何人都可以看到“登录”页面,但在登录之前没有人能够看到网站的其余部分。对于客户来说,这是一个简单的解决方法: - )

事实上,我甚至写了一个自定义属性,从数据库中读取设置,所以我可以将网站放入"锁定",如果你理解我的意思。