ASP.NET Core Kestrel web sunucusu ile konak filtreleme

gibi http://example.com:5000Kestrel ön ekleri temel alan yapılandırmayı desteklese deKestrel, konak adını büyük ölçüde yoksayar. Konak localhost , geri döngü adreslerine bağlama için kullanılan özel bir durumdur. Açık IP adresi dışındaki tüm konaklar tüm genel IP adreslerine bağlanır. Host üst bilgiler doğrulanmaz.

Geçici bir çözüm olarak Konak Filtreleme Ara Yazılımını kullanın. Ara yazılım tarafından CreateDefaultBuildereklenir ve öğesini çağırır AddHostFiltering:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

Konak Filtreleme Ara Yazılımı varsayılan olarak devre dışıdır. Ara yazılımı etkinleştirmek için içinde appsettings.json/appsettings.{Environment}.jsonbir AllowedHosts anahtar tanımlayın. Değer, bağlantı noktası numaraları olmayan konak adlarının noktalı virgülle ayrılmış listesidir:

appsettings.json:

{
  "AllowedHosts": "example.com;localhost"
}

Dekont

İletilen Üst Bilgiler Ara Yazılımının da bir AllowedHosts seçeneği vardır. İletilen Üst Bilgiler Ara Yazılımı ve Konak Filtreleme Ara Yazılımı, farklı senaryolar için benzer işlevlere sahiptir. AllowedHosts İletilen Üst Bilgiler Ara Yazılımı ayarı, istekleri ters ara sunucu veya yük dengeleyici ile iletirken üst bilgi korunmadığında Host uygundur. Genel kullanıma yönelik bir kenar sunucusu olarak kullanıldığında veya üst bilgi doğrudan iletildiğinde Host Konak Filtreleme Ara Yazılımı ile ayarlama AllowedHosts uygundurKestrel.

İletilen Üst Bilgiler Ara Yazılımı hakkında daha fazla bilgi için bkz . ASP.NET Çekirdeği ara sunucularla ve yük dengeleyicilerle çalışacak şekilde yapılandırma.