“[Authorize(Roles = ADMIN)]”中的括号在ASP.NET中的含义是什么?

时间:2014-12-18 19:33:45

标签: c# asp.net .net directive

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

它看起来像某种指令,但我找不到谁解析这个指令也没有找到定义Authorize函数的位置。

2 个答案:

答案 0 :(得分:4)

这是C#中attribute的语法:

  

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

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

答案 1 :(得分:1)

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