.- Есть ли способ включить свойство (расширить) в HttpContext пользовательского класса, так же, как есть свойство User, которое является ClaimsPrincipal? Я хочу получить доступ к HttpContext.MyOwnProperty пользовательского класса на протяжении всего конвейера (без DI).
Длинное объяснение:
Я создал свою собственную систему идентификации в ASP.NET 5, чтобы избавиться от многочисленной и постоянно меняющейся системы идентификации платформы, от которой я действительно устал, и избежать использования утверждений, которые могут быть очень стандартизированы, но также неэффективны там, где их много.
Я использую типизированный объект для представления доступа пользователя и получаю его из репозитория в памяти (или из общего кэша), который представляет собой службу, зарегистрированную на ранней стадии конвейера, каким-то образом как текущий UserManager. Затем я передаю этот объект в конвейер, сопоставляя его свойства с сервисом с ограниченной областью действия, который я зарегистрировал ранее:
Код: Выделить всё
services.AddSingleton();
services.AddScoped();
Цель состоит в том, чтобы расширить класс HttpContext, добавив свойство типа CurrentAccess, аналогично тому, как существует свойство User, которое является ClaimsPrincipal. Это было бы здорово, но я не знаю, как это сделать. Есть идеи?
(Я также попробовал другой подход, использующий свойство HttpContext.Items, которое представляет собой Dictionary, куда я могу добавить свой собственный объект, но я не знаю его жизненный цикл, и мне придется каждый раз искать свой элемент и приводить его, что кажется уродливее, чем предыдущий вариант)
Подробнее здесь: https://stackoverflow.com/questions/337 ... -httpconte
Мобильная версия