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

cor*_*ore 9 .net c# 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")]用一个属性来装饰不应该有的单个方法,这意味着"不要为这个特定的方法应用类级动作过滤器"?

Tom*_*ler 10

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

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