Как разрешить внедрение зависимостей в атрибутах фильтра MVC

У меня есть класс настраиваемого атрибута, производный от AuthorizationAttribute, который выполняет настраиваемую безопасность действий контроллера. Метод OnAuthorizationCore зависит от различных других компонентов (например, DAL), чтобы определить, может ли пользователь вызвать действие.

Я использую Autofac для внедрения зависимости. ExtensibleActionInvoker утверждает, что может выполнять внедрение свойств в фильтры действий. Установка свойств атрибута во время выполнения (что кажется плохой идеей) будет работать в простом модульном тесте, но на загруженном, многопоточном веб-сервере это обязательно приведет к ошибке, и поэтому эта идея кажется анти-шаблоном. Отсюда следующий вопрос:

Если мой атрибут авторизации зависит от других компонентов для правильной работы, какой это правильный шаблон [архитектура] для достижения этого?

т.е. атрибут авторизации зависит от IUserRepository ... как должен эта связь разрешена?

13
задан David Neale 12 November 2010 в 12:30
поделиться