我认为控制器正在检查(某处)实际的用户角色,但这些方括号是什么意思?
它看起来像某种指令,但我找不到谁解析这个指令也没有找到定义Authorize函数的位置。
答案 0 :(得分:4)
这是C#中attribute的语法:
属性可以放在大多数声明中,尽管特定属性可能会限制它有效的声明类型。在C#中,您可以通过将属性的名称括在方括号([])中,在其应用的实体的声明之上来指定属性。
所以你的控制器上有一个AuthorizeAttribute
。这是一种action filter。 ASP.NET / MVC运行时是谁"检查"并强制执行操作过滤器。
答案 1 :(得分:1)
Authorize
属性实际上是AuthorizeAttribute
。这可能有助于您的搜索。括号是一个指令,意味着里面的东西是一个属性。属性根据它们包装的内容进行不同的处理。在AuthorizeAttribute
的情况下,它会挂钩请求并在操作代码运行之前运行它自己的代码。