答案 0 :(得分:1)
鉴于您链接的图像看起来像是来自IdentityServer4的文档,我假设您已经看过这个,但它worth看again给出了Kestral有关于这样做的文档应该足以让您入门。
这几乎是从文档中删除的,但您可以将There's a quickstart repo与IIS和IIS集成包一起使用,并使用方案" Windows&#34在HttpContext上使用ChallengeAsync API来触发Windows身份验证;。实现此逻辑的{{3}}。
使用Kestrel时,必须在IIS后面运行并使用IIS集成:
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://localhost:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
使用WebHost.CreateDefaultBuilder方法设置WebHostBuilder时会自动配置Kestrel。
IIS(或IIS Express)中的虚拟目录也必须启用Windows并启用匿名身份验证。
IIS集成层将Windows身份验证处理程序配置为DI,可以通过身份验证服务调用。通常在IdentityServer中,建议禁用此自动行为。这在ConfigureServices中完成:
services.Configure<IISOptions>(iis =>
{
iis.AuthenticationDisplayName = "Windows";
iis.AutomaticAuthentication = false;
});