Как методу C# «узнать», кто текущий пользователь, если он используется в разных типах приложений (ASP.NET, Console, WinForms и т.п.)?
Архитектурный вопрос.
Предположим, есть какой-то класс, который выполняет некоторую логику, в которой необходимо использовать имя текущего пользователя. Этот класс может быть использован в разных приложениях, но способы получения имени пользователя в каждом приложении разные, например, в веб приложении - это кто авторизовался в приложении, а в консольном - кто его запустил.
Вопрос: как правильно архитектурно построить этот класс, чтобы он прозрачно выполнял свою работу в любом типе приложений?
Мне приходит на ум сделать зависимость от интерфейса, который занимается тем, что определяет текущего пользователя, в каждом типе приложений реализовать его по своему, и через dependency injection внедрять нужную зависимость в мой класс непосредственно в приложении любого типа.
Хорош ли такой подход? Есть ли более изящные и правильные решения?
Мне приходит на ум сделать зависимость от интерфейса, который занимается тем, что определяет текущего пользователя, в каждом типе приложений реализовать его по своему, и через dependency injection внедрять нужную зависимость в мой класс непосредственно в приложении любого типа