我有一个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 ;不要为此特定方法应用类级别操作过滤器"?
答案 0 :(得分:10)
您可以使用[AllowAnonymous]属性。例如,当网站处于预览状态时,我已经在登录操作上执行了此操作,因此任何人都可以看到“登录”页面,但在登录之前没有人能够看到网站的其余部分。对于客户来说,这是一个简单的解决方法: - )
事实上,我甚至写了一个自定义属性,从数据库中读取设置,所以我可以将网站放入"锁定",如果你理解我的意思。