MVC3 - переопределить атрибут в объявлении базового класса - PullRequest
0 голосов
/ 12 мая 2011

У нас есть базовый контроллер, который наследуют все остальные наши контроллеры, и собственный атрибут RequireHttps. Этот пользовательский атрибут имеет переключатель для принудительного использования SSL или использования параметра в файле конфигурации. Базовый контроллер снабжен этим атрибутом и настроен на использование параметра конфигурации, который является правильным для 95% наших контроллеров. Однако у нас есть пара контроллеров, которые мы хотим установить так, чтобы они всегда требовали SSL. Если я применяю атрибут к этим парам контроллеров для принудительного использования SSL, то код RequireHttpsAttribute запускается дважды (вероятно, это не большая проблема, но, конечно, не идеальная).

Можно ли как-нибудь переопределить объявление атрибута в базовом классе объявлением атрибута в дочернем элементе? Я подозреваю, что не могу, но хотел бы знать наверняка.

Спасибо всем

1 Ответ

0 голосов
/ 12 мая 2011

Как насчет создания другого пользовательского атрибута, который будет вставлять в текущий HttpContext некоторое значение, указывающее, что требуется SSL. Затем вы украсите контроллеры, которые должны быть исключением, с помощью этого атрибута. Затем измените свой пользовательский атрибут RequireHttps, чтобы найти наличие этого значения в HttpContext и применить SSL.

Необходимо только убедиться, что этот новый фильтр будет запущен до настраиваемого атрибута RequireHttps. Это можно сделать с помощью свойства Order.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...