В ASP.NET Core вы добавите ПО промежуточного слоя в конвейер запросов в коде.

Эти компоненты промежуточного программного обеспечения выполняются для каждого входящего запроса и при необходимости изменяют или запрещают запросы.

Но абсолютно важно помнить о порядке добавления этих промежуточных программ.

Заказ может испортить вашу функциональность

Поскольку каждый компонент промежуточного программного обеспечения выполняет определенную функциональность и изменяет часть контекста запроса, некоторые функции могут быть упущены, если мы нарушим порядок выполнения.

Например, промежуточное ПО проверки подлинности проверяет заголовки запроса на наличие маркера и проверяет личность пользователя. Затем он устанавливает утверждения идентификации пользователя в контексте.

Если вы разместите свое пользовательское ПО промежуточного слоя перед ПО промежуточного слоя проверки подлинности, эти утверждения будут недоступны для чтения.

Точно так же промежуточное ПО UseCors, UseAuthentication и UseAuthorization должно быть размещено в том же порядке, что и выше.

Это связано с тем, что авторизация происходит только после аутентификации, и Cors должен быть первым, кто внесет запрос в белый список, прежде чем что-либо произойдет.

app.UseCors();
app.UseAuthentication();
app.UseAuthorization();


app.Run();

Заказ может улучшить производительность

Кроме того, изменение порядка промежуточного программного обеспечения также может повлиять на ответ.

Например, вы можете поместить UseResponseCaching перед UseStaticFiles для кэширования ответов статических файлов, чтобы API не приходилось каждый раз считывать и возвращать актив, что быстрее, чем в обратном порядке.

// cache response content
app.UseResponseCaching();

// compress response content
app.UseResponseCompression();

// serve static file requests
app.UseStaticFiles();

Кроме того, добавление промежуточного программного обеспечения UseResponseCompression() после UseResponseCaching() может помочь уменьшить размер кэшируемого ответа, но создает путаницу, когда мы варьируем используемый алгоритм сжатия.

Так что в следующий раз, когда вы будете работать над приложением dotnetcore, просто наблюдайте за порядком добавления ПО промежуточного слоя в конвейер и звоните, чтобы узнать, что можно сделать для улучшения.

Прочтите мое подробное руководство о том, как создать пользовательский компонент промежуточного программного обеспечения и различные способы его создания — https://codingramen.com/blog/how-to-create-a-custom-middleware-in-asp-net-core. /

Новичок в .NET и хотите начать работу с компонентами промежуточного ПО?

ОТЛИЧНЫЕ НОВОСТИ! Я ТОЛЬКО ЗАПУСТИЛ свой последний цифровой продукт — подробное руководство по промежуточному программному обеспечению в .NET, обязательно ознакомьтесь с ним!

https://referbruv.gumroad.com/l/Exploring-ASP-NET-Core-Middlewares-A-Complete-Guide-Developers