【问题标题】:What do the brackets in "[Authorize(Roles = ADMIN)]" mean in ASP.NET?“[Authorize(Roles = ADMIN)]”中的括号在 ASP.NET 中是什么意思?
【发布时间】:2014-12-18 19:33:44
【问题描述】:

我知道控制器正在(某处)检查实际用户角色,但这些方括号是什么意思?

它看起来像某种指令,但我既找不到解析该指令的人,也找不到定义授权函数的位置。

【问题讨论】:

  • 在标题中编辑回“ASP.NET”,因为在 ASP.NET 页面中搜索它的人可能不知道它来自 C#,因为我也很难找到它。
  • 谢谢大家。在 cmets 中提供答案和链接的人。

标签: c# asp.net .net directive


【解决方案1】:

这是 C# 中 attribute 的语法:

属性可以放置在大多数任何声明中,尽管特定属性可能会限制其有效的声明类型。在 C# 中,您可以通过将属性名称括在方括号 ([]) 中 放在它所适用的实体声明的上方来指定属性。

所以你的控制器上有一个AuthorizeAttribute。这是一种action filter。 ASP.NET / MVC 运行时负责“检查”并强制执行操作过滤器。

【讨论】:

    【解决方案2】:

    Authorize 属性实际上是AuthorizeAttribute。这可能有助于您的搜索。括号是一个指令,意味着里面的东西是一个属性。属性根据它们包装的内容进行不同的处理。在AuthorizeAttribute 的情况下,它会挂接到请求并在操作代码运行之前运行它自己的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2012-03-30
      • 2021-11-26
      • 2020-01-12
      相关资源
      最近更新 更多