2014-12-18 3 views
2

Я понимаю, что контроллер проверяет (где-то) фактические роли пользователя, но что означают эти квадратные скобки?Что означают скобки в «[Авторизовать (Роли = ADMIN)]» в ASP.NET?

Похоже, что это какая-то директива, но я не мог найти ни того, кто разбирает эту директиву, ни там, где определена функция авторизации.

+0

Отметьте: [Авторизовать атрибут в ASP.NET MVC] (http://stackoverflow.com/questions/10848086/authorize-attribute-in-asp-net-mvc) – melancia

+0

Отправлено обратно на страницу "ASP.NET" в заголовке, потому что тот, кто ищет это на странице ASP.NET, может не знать, что это от C#, так как у меня также были проблемы с его поиском. – DarkLighting

+0

Спасибо всем. Те, кто предоставил ответы и ссылки в комментариях. – DarkLighting

ответ

4

Это синтаксис для attribute в C#:

Атрибуты могут быть размещены на большинстве любого заявления, хотя конкретный атрибут может ограничить типы деклараций, на которых он действует. В C# вы указываете атрибут, поместив имя атрибута , заключенное в квадратные скобки ([]), над объявлением лица, к которому оно относится.

Итак, у вас есть AuthorizeAttribute на вашем контроллере. Это своего рода action filter. Время выполнения ASP.NET/MVC - это «проверка» и принудительное использование фильтров действий.

1

Атрибут Authorize на самом деле AuthorizeAttribute. Это может помочь в поиске. Скобки - это директива, которая означает, что материал внутри является атрибутом. Атрибуты обрабатываются по-разному в зависимости от того, что они обертывают. В случае AuthorizeAttribute он подключается к запросу и запускает собственный код до запуска кода действия.

Смежные вопросы