【发布时间】:2014-12-18 19:33:44
【问题描述】:
我知道控制器正在(某处)检查实际用户角色,但这些方括号是什么意思?
它看起来像某种指令,但我既找不到解析该指令的人,也找不到定义授权函数的位置。
【问题讨论】:
-
在标题中编辑回“ASP.NET”,因为在 ASP.NET 页面中搜索它的人可能不知道它来自 C#,因为我也很难找到它。
-
谢谢大家。在 cmets 中提供答案和链接的人。
我知道控制器正在(某处)检查实际用户角色,但这些方括号是什么意思?
它看起来像某种指令,但我既找不到解析该指令的人,也找不到定义授权函数的位置。
【问题讨论】:
这是 C# 中 attribute 的语法:
属性可以放置在大多数任何声明中,尽管特定属性可能会限制其有效的声明类型。在 C# 中,您可以通过将属性名称括在方括号 ([]) 中 放在它所适用的实体声明的上方来指定属性。
所以你的控制器上有一个AuthorizeAttribute。这是一种action filter。 ASP.NET / MVC 运行时负责“检查”并强制执行操作过滤器。
【讨论】:
Authorize 属性实际上是AuthorizeAttribute。这可能有助于您的搜索。括号是一个指令,意味着里面的东西是一个属性。属性根据它们包装的内容进行不同的处理。在AuthorizeAttribute 的情况下,它会挂接到请求并在操作代码运行之前运行它自己的代码。
【讨论】: