app.UseAuthorization;

  // Включить маршрутизацию с использованием конечных точек.

  // Использовать для контроллеров маршрутизацию с помощью атрибутов.

  app.UseEndpoints(endpoints =>

  {

    endpoints.MapControllers;

  });

}

Кроме того, когда приложение запускается в среде разработки, необходимо инициализировать базу данных. Добавьте в метод Configure параметр типа ApplicationDbContext и вызовите метод InitializeData из AutoLot.Dal.

Ниже показан модифицированный код:

public void Configure(

  IApplicationBuilder app,

  IWebHostEnvironment env,

  ApplicationDbContext context)

{

  if (env.IsDevelopment)

  {

    // Если среда разработки, тогда отображать отладочную информацию.

    app.UseDeveloperExceptionPage;

    // Инициализировать базу данных.

   if (Configuration.GetValue("RebuildDataBase"))

    {

      SampleDataInitializer.InitializeData(context);

    }

   }

  ...

}

Обновите файл appsettings.development.json с учетом свойства RebuildDataBase (пока что установив его в false):

{

  "Logging": {

    "LogLevel": {

      "Default": "Information",

      "Microsoft": "Warning",

      "Microsoft.Hosting.Lifetime": "Information"

    }

  },

  "RebuildDataBase": false,

  "ConnectionStrings": {

    "AutoLot": "Server=db;Database=AutoLotPresentation;

    User ID=sa;Password=P@ssw0rd;"

  }

}

<p id="AutBody_Root1396"><strong>AutoLot.Mvc</strong></p>

Метод Configure для веб-приложений немного сложнее, чем его аналог для API. Ниже приведен полный код метода с последующим обсуждением:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

{

  if (env.IsDevelopment)

  {

    app.UseDeveloperExceptionPage;

  }

  else

  {

    app.UseExceptionHandler("/Home/Error");

    app.UseHsts;

  }

  app.UseHttpsRedirection;

  app.UseStaticFiles;

  app.UseRouting;

  app.UseAuthorization;

  app.UseEndpoints(endpoints =>

  {

    endpoints.MapControllerRoute(

      name: "default",

      pattern: "{controller=Home}/{action=Index}/{id?}");

  });

}

Метод Configure также проверяет среду, и если она установлена в Development (среда разработки), тогда в конвейер обработки добавляется промежуточное ПО UseDeveloperExceptionPage. Для любой другой среды в конвейер обработки добавляется универсальное промежуточное ПО UseExceptionHandler и поддержка протокола строгой транспортной безопасности HTTP (HTTP Strict Transport Security — HSTS). Как и в аналоге для API, добавляется вызов app.UseHttpsRedirection. Следующим шагом является добавление поддержки статических файлов с помощью вызова app.UseStaticFiles. Поддержка статических файлов включается как мера по усилению безопасности. Если ваше приложение в ней не нуждается (подобно API-интерфейсам), тогда не добавляйте такую поддержку. Затем добавляется промежуточное ПО для маршрутизации, авторизации и конечных точек.

Добавьте в метод параметр типа АрplicationDbContext и вызовите InitializeData из AutoLot.Dal. Вот модифицированный код:

public void Configure(

  IApplicationBuilder app,

  IWebHostEnvironment env,

  ApplicationDbContext context)

{

  if (env.IsDevelopment)

  {

    // Если среда разработки, тогда отображать отладочную информацию.

    app.UseDeveloperExceptionPage;

    // Инициализировать базу данных.

   if (Configuration.GetValue("RebuildDataBase"))

    {

      SampleDataInitializer.InitializeData(context);

    }

  }

  ...

}

Обновите файл appsettings.development.json с учетом свойства RebuildDataBase (пока что установив его в false):

{

  "Logging": {

    "LogLevel": {

Перейти на страницу:

Похожие книги