В моем веб-приложении у меня есть различные компоненты, которые должны получить доступ к аутентифицированному пользователю (HttpContext.User).
Существует два очевидных способа доступа компонента к этому:
1) Доступ к получению пользователя из HttpContext.Current
2) Передача пользователя в конструкторы
- Не идеален, потому что это затрудняет тестирование и связывает компоненты приложения с проблемами сети, когда они действительно не должны знать об этом.
- Просто грязно и все усложняет.
Так что я думал о передаче текущего пользователя (или, возможно, только имени / идентификатора) любому компоненту, который нуждается в нем, с помощью контейнера IoC (посредством внедрения зависимости).
Кто-нибудь использует эту технику для предоставления текущего пользователя ASP.NET частям приложения? Или это звучит как разумный подход? Я хотел бы знать, как это сработало для людей.
Спасибо
UPDATE:
Спасибо Раджу за отличный пример. Если у кого-то есть подобный пример, использующий AutoFac, он будет очень признателен!
ОБНОВЛЕНИЕ2: Спасибо за ответы, хотелось бы, чтобы я разделил приём!