Мидълуер - документация за Core 1

Мидълуерът е дефиниран в спецификацията на OWIN. Тези компоненти образуват "тръбопровод" между сървъра и приложението за проверка, предаване и модифициране на заявки и отговори за конкретни цели. Мидълуерът се състои от компоненти на приложението, които са включени в ASP.NET HTTP.

Какво е междинен софтуер¶

Мидълуерът е компоненти, които се сглобяват в нишка за обработка на заявки и отговори. Всеки bean може да предаде заявка на следващия bean в нишката и да извърши определени действия преди и след извикването на следващия bean. Делегатите на заявки се използват за създаване на тези потоци, които след това служат за обработка на всяка HTTP заявка.

Делегатите на заявките се конфигурират с помощта на методите за разширение Run, Map и Use на IApplicationBuilder, който се предава на метода Configure на класа Startup. Един делегат на заявка може да бъде указан като анонимен метод или може да бъде дефиниран в клас за многократна употреба. Тези многократно използвани класове са междинен софтуер или компоненти на междинен софтуер. Всеки компонент на междинния софтуер в потока на заявките е отговорен за извикването на следващия компонент във веригата или за заобикаляне на множество компоненти, за да достигне до желания.

Мигрирането на HTTP модули към междинен софтуер показва разликата между потоците на заявки в ASP.NET 5 и предишните версии.

Създаване на нишка с IApplicationBuilder¶

Потокът на заявка в ASP.NET се състои от поредица от делегати на заявки, които се извикват един след друг, както е показано на диаграмата:

софтуер

Можете да видите пример за конфигуриране на потока на заявките в шаблона за уеб сайт по подразбиране на Visual Studio 2015. Методът Configure добавя следните компоненти на междинния софтуер:

  1. Обработка на грешки
  2. Статичен файлов сървър
  3. Удостоверяване
  4. MVC

В кода по-горе UseExceptionHandler е първият мидълуер в нишката, така че ще улови всяко изключение, което възниква при следващи извиквания.

  1. Дръжте ги извън wwwroot и всяка директория, до която междинният софтуер за статични файлове има достъп.
  2. Прекарайте ги през действие на контролер, като върнете FileResult.

Заявка, която се обработва от модула за статични файлове, ще затвори потока. (Вижте Работа със статични файлове.) Ако заявката не се обработва от такъв модул, тя се предава на `Identity `__ , който извършва удостоверяването. Ако заявката не е удостоверена, потокът ще се затвори. Ако удостоверяването е преминало, се извиква последният компонент в потока, тоест MVC рамката.

Редът, в който добавяте междинния софтуер, обикновено е редът, в който компонентите обработват заявката и обратният ред за отговора. Това може да бъде критично за сигурността, производителността и функционалността.