Возможно, вы движетесь вниз по скользкому склону. Смысл в СУХОЙ состоит в том, чтобы не повторять бизнес-логику в нескольких местах, где изменение требований создает необходимость изменения кода в нескольких похожих местах. Вы не обязательно рефакторинг только потому, что 4 строки одинаковы, если эти 4 строки зависят от контекста. Вы также нарушили инкапсуляцию, сославшись на httprequest, так как используете глобальную переменную. Как потребителю вашего класса, я должен был бы знать детали реализации, которые я мог бы вызывать только из веб-приложения.
Это, как говорится, если вы принимаете это во внимание и все еще хотите продолжить, вот еще один вариант для получения информации, подобной этой. Создайте пользовательский SecurityPrincipal (Implement IPrincipal), который содержит нужные вам свойства, и присоедините его к потоку. Заполните их, когда пользователь войдет в систему, и вы сможете получить к нему доступ в любом месте во время запроса. Ваш абонент все еще должен убедиться, что это сделано, но, по крайней мере, это не зависит от платформы.
В противном случае для лучшей инкапсуляции передайте класс с нужными вам свойствами в конструктор для каждого объекта, который должен использовать эти свойства.