Scoped - это время жизни, которое сложно понять. Начнем с того, почему он называется Scoped, а не PerRequest et c?
Причина в том, что контейнер DI не имеет понятия «запросы». Но у него есть «прицелы». Когда ваше приложение запускается, оно создает набор сервисов «root». Теперь, когда ваше приложение получает HTTP-запрос, из этой коллекции служб root создается область действия. Все услуги, которые вы приобретаете в контроллерах et c. приобретаются из этой области. Если служба определена как временная или ограниченная, область создаст их и удалит их, когда область будет удалена, то есть когда HTTP-запрос завершится. Однако, если это синглтон, область получает единственный экземпляр из коллекции служб root.
Разница между переходным процессом и областью действия заключается в том, что если одна и та же служба запрашивается во время одного и того же запроса, один и тот же экземпляр для служба с заданной областью действия возвращается, в то время как переходные процессы всегда будут новыми экземплярами.
Теперь по вашему вопросу: что происходит, когда вы перенаправляете пользователя?
- Ваше приложение получает запрос
- Он возвращает код состояния 302 Found для перенаправления вызывающего абонента, на этом заканчивается запрос
- Пользователь делает новый запрос на URL-адрес, указанный в заголовке Location в ответе на предыдущий запрос
Значит, это новый запрос.