В ASP.NET Core порядок выполнения промежуточного программного обеспечения определяется порядком, в котором компоненты промежуточного программного обеспечения добавляются в конвейер приложения. Конвейер промежуточного программного обеспечения по существу представляет собой цепочку компонентов, каждый из которых выполняет определенную задачу в течение жизненного цикла запроса/ответа.
Вот несколько методов, которые можно использовать для управления порядком выполнения компонентов промежуточного программного обеспечения:
-
Используйте метод
UseMiddleware:() app.UseMiddleware<FirstMiddleware>(); app.UseMiddleware<SecondMiddleware>(); -
Используйте метод
Use()с лямбда-выражением:app.Use(async (context, next) => { // Custom logic before invoking the next middleware await next.Invoke(); // Custom logic after invoking the next middleware }); -
Используйте метод
UseWhen()для условного выполнения промежуточного программного обеспечения на основе предиката:app.UseWhen(context => context.Request.Path.StartsWithSegments("/admin"), appBuilder => { appBuilder.UseMiddleware<AdminMiddleware>(); }); -
Используйте метод
Map(), чтобы разветвить конвейер промежуточного программного обеспечения на основе пути запроса:app.Map("/api", apiApp => { apiApp.UseMiddleware<ApiMiddleware>(); }); app.Map("/admin", adminApp => { adminApp.UseMiddleware<AdminMiddleware>(); }); -
Используйте класс
UseMiddlewareExtensions, чтобы вставить промежуточное ПО в определенную позицию:app.UseMiddleware<FirstMiddleware>(); app.UseMiddleware<SecondMiddleware>(); app.UseMiddleware<ThirdMiddleware>(); // Insert FourthMiddleware between SecondMiddleware and ThirdMiddleware app.UseMiddleware<FourthMiddleware>();
Это всего лишь несколько примеров того, как можно контролировать порядок выполнения промежуточного программного обеспечения в ASP.NET Core. Фактический порядок будет зависеть от требований вашего конкретного приложения.