ASP.NET Core Kestrel web sunucusuyla konak filtrelemesi

Kestrel, Gibi önekleri temel alarak yapılandırmayı desteklerken http://example.com:5000 , büyük Kestrel ölçüde ana bilgisayar adını yoksayar. Ana bilgisayar localhost , geri döngü adreslerine bağlama için kullanılan özel bir durumdur. Açık IP adresi dışındaki tüm ana bilgisayar tüm genel IP adreslerine bağlanır. Host Üstbilgiler doğrulanmadı.

Geçici bir çözüm olarak, ana bilgisayar filtreleme ara yazılımı kullanın. Ara yazılım tarafından eklenir CreateDefaultBuilder ve şunları ç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>();
}

Ana bilgisayar filtreleme ara yazılımı varsayılan olarak devre dışıdır. Ara yazılımı etkinleştirmek için AllowedHosts appSettings 'de bir anahtar tanımlayın appsettings.json / . <EnvironmentName> . JSON. Değer, bağlantı noktası numaraları olmayan ana bilgisayar adlarının noktalı virgülle ayrılmış listesidir:

appsettings.json:

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

Not

Iletilen üstbilgiler ara yazılımı da bir AllowedHosts seçenek içerir. İletilen üstbilgiler ara yazılımı ve ana bilgisayar filtreleme ara yazılımı, farklı senaryolar için benzer işlevlere sahiptir. AllowedHostsIletilen üstbilgiler ara yazılımı ile, Host istekler ters bir ara sunucu veya yük dengeleyici ile iletilirken üst bilgi korunurken, bu işlem için uygun bir ayar vardır. AllowedHostsAna bilgisayar filtreleme ara yazılımı ile ayarlandığında, Kestrel genel kullanıma yönelik bir uç sunucu olarak veya Host üst bilgi doğrudan iletildiğinde kullanılır.

Iletilen üstbilgiler ara yazılımı hakkında daha fazla bilgi için bkz Yapılandırma ASP.NET Core sunucuları ve yük dengeciler ile çalışacak şekilde yapılandırma ..