asp.net - AllowAnonymous 是否覆盖 AuthorizeAttribute

标签 asp.net asp.net-mvc

我试图阻止特定角色(比如 RoleA)中的特定用户访问特定操作。允许匿名用户访问,但不允许 RoleA 中的用户访问该操作。

所以我做了这样的事情:

[AllowAnonymous]
[CustomAuthorize(Roles="RoleB,RoleC")]
public ActionResult MyAction(){
  //irrelevant
}

但是,CustomAuthorize[AllowAnonymous] 时, Action 过滤器永远不会被命中存在。
[AllowAnonymous]也是如此覆盖 [CustomAuthorize] ?

最佳答案

回答问题(有点晚,但可能对某人有用):

AllowAnonymous 有以下描述:

Represents an attribute that marks controllers and actions to skip the AuthorizeAttribute during authorization.



因此,将它与授权属性一起添加将导致授权代码根本不运行。

这也有这样的效果,如果您将其作为一个属性添加到整个 Controller 上(即在类级别),则向该 Controller 上的操作添加单独的 Authorize 属性将不起作用。

关于asp.net - AllowAnonymous 是否覆盖 AuthorizeAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22955272/

相关文章:

javascript - 无法调用外部 Javascript 方法

c# - 我的单元测试是否关心太多

c# - REDIRECT URIS OAuth 2.0 是否有命名标准?

asp.net-mvc - Azure OpenID 通过 OWIN 中间件连接导致无限重定向循环

c# - 如何使用 JavaScript 或 JQuery 获取 ASP.net 中生成的控件的 ID

c# - 如何在超链接 Regex 中包含连字符?

c# - WCF 服务的 basicHttpBinding 上的 HTTPS

c# - MVC 4 Web API 注册过滤器

c# - 在 ASP.NET 中将订阅者添加到 Mail Chimp 3.0 中的列表

asp.net - 在哪里可以下载 DLR 的托管 JScript?