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

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

  1. Промежуточное ПО для статических файлов:
    Это промежуточное ПО обслуживает статические файлы, такие как HTML, CSS, JavaScript и изображения. Это должен быть один из первых зарегистрированных компонентов промежуточного программного обеспечения.

    app.UseStaticFiles();
  2. Промежуточное программное обеспечение маршрутизации.
    Промежуточное программное обеспечение маршрутизации сопоставляет входящие запросы с соответствующей конечной точкой на основе шаблона URL-адреса. Оно должно идти после промежуточного программного обеспечения для статических файлов.

    app.UseRouting();
  3. Промежуточное программное обеспечение авторизации:
    Промежуточное программное обеспечение авторизации выполняет проверки аутентификации и авторизации для входящих запросов. Оно должно идти после промежуточного программного обеспечения маршрутизации.

    app.UseAuthorization();
  4. Промежуточное программное обеспечение конечной точки:
    Промежуточное программное обеспечение конечной точки выполняет конечную точку, выбранную промежуточным программным обеспечением маршрутизации. Оно должно идти после промежуточного программного обеспечения авторизации.

    app.UseEndpoints(endpoints =>
    {
       // Configure endpoints here
    });
  5. Промежуточное программное обеспечение для обработки исключений:
    Промежуточное программное обеспечение для обработки исключений перехватывает любые необработанные исключения и генерирует соответствующий ответ. Его следует разместить в верхней части конвейера промежуточного программного обеспечения.

    app.UseExceptionHandler("/error");
  6. Промежуточное программное обеспечение для ведения журналов (необязательно):
    Промежуточное программное обеспечение для ведения журналов регистрирует информацию о запросах и ответах. Его можно разместить в любом месте конвейера промежуточного программного обеспечения, в зависимости от ваших требований к ведению журналов.

    app.UseLogging();

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