Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows/AD身份验证不起作用的IdentityServer 4?_C#_Asp.net Core_Identityserver4 - Fatal编程技术网

C# Windows/AD身份验证不起作用的IdentityServer 4?

C# Windows/AD身份验证不起作用的IdentityServer 4?,c#,asp.net-core,identityserver4,C#,Asp.net Core,Identityserver4,我为IdentityServer4创建了一个新项目,并包含了QuickUI。然后,我将按照链接添加Windows身份验证 startup.cs public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddIdentityServer() .AddDevel

我为IdentityServer4创建了一个新项目,并包含了QuickUI。然后,我将按照链接添加Windows身份验证

startup.cs

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();

        services.AddIdentityServer()
            .AddDeveloperSigningCredential()
            .AddTestUsers(Config.GetUsers())
            .AddInMemoryIdentityResources(Config.GetIdentityResources())
            .AddInMemoryClients(Config.GetClients());

        services.Configure<IISOptions>(iis =>
        {
            iis.AuthenticationDisplayName = "Windows";
            iis.AutomaticAuthentication = false;
        });
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }

        app.UseIdentityServer();
        app.UseStaticFiles();
        app.UseMvcWithDefaultRoute();
    }
}
public class Program
{
    public static void Main(string[] args) => CreateWebHostBuilder(args).Build().Run();

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>();
}
如何解决这个问题


顺便说一句,我只需要针对Windows/AD进行身份验证,所以我不需要外部按钮。如何更改代码

需要禁用“匿名身份验证”并启用“Windows身份验证”。

使用Kestrel时,必须使用IIS集成:

var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://localhost:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
var host=new WebHostBuilder()
.UseKestrel()
.useURL(“http://localhost:5000")
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
.Build();
配置服务中的更改

services.Configure<IISOptions>(iis => 
{  
  iis.AuthenticationDisplayName = "Windows";
  iis.AutomaticAuthentication = false;
});
services.Configure(iis=>
{  
iis.AuthenticationDisplayName=“Windows”;
iis.AutomaticAuthentication=false;
});
必须启用Windows和匿名身份验证(IIS或IISExpress)

注意:如果您使用的是VisualStudio和IISExpress,请以“管理员”身份运行Visual Studio

有关详细信息:请参阅此链接:

services.Configure<IISOptions>(iis => 
{  
  iis.AuthenticationDisplayName = "Windows";
  iis.AutomaticAuthentication = false;
});