﻿Fundamentals, w tym lista wbudowanych middleware
https://docs.microsoft.com/pl-pl/aspnet/core/fundamentals/middleware/?view=aspnetcore-2.2

HttpContext w middleware -> 
services.AddHttpContextAccessor();
services.AddTransient<IUserRepository, UserRepository>();

public class UserRepository : IUserRepository
{
    private readonly IHttpContextAccessor _httpContextAccessor;

    public UserRepository(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }

    public void LogCurrentUser()
    {
        var username = _httpContextAccessor.HttpContext.User.Identity.Name;
        service.LogAccessRequest(username);
    }
}

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-context?view=aspnetcore-2.2

Example -> Soap

https://blogs.msdn.microsoft.com/dotnet/2016/09/19/custom-asp-net-core-middleware-example/

Inicjalizator, asynchroniczny -> przez services

https://www.thomaslevesque.com/tag/asp-net-core/

Static files

https://docs.microsoft.com/pl-pl/aspnet/core/fundamentals/static-files?view=aspnetcore-2.2

Konfiguracja

https://docs.microsoft.com/pl-pl/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2
https://weblog.west-wind.com/posts/2017/Dec/12/Easy-Configuration-Binding-in-ASPNET-Core-revisited
https://adamstorr.azurewebsites.net/blog/aspnetcore-exploring-custom-middleware
https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-in-asp-net-core/

Dlaczego pipeline wymaga zakończenia? Bo ostatni, niejawny middleware zwraca 404.

http://cknaap.blogspot.com/2016/07/aspnet-core-middleware-pipeline-status.html