Как включить SSL, аутентификацию Windows и анонимную аутентификацию через консоль

Из свойств проекта мы могли бы сделать это следующим образом для IIS Express введите описание изображения здесь

но я использую консоль для хоста провайдера IdentityServer4 Identity. введите описание изображения здесь поэтому я должен настроить его из Program.cs или Startup.cs, так как у меня нет таких параметров в свойствах проекта при использовании консоли. введите описание изображения здесь

2 ответа

Аутентификация IIS и Windows не применяется, когда вы размещаете свой сервис с консольным приложением. Я использую приведенный ниже код включения HTTPS для моего сервера идентификации

public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseKestrel(options => 
                {
                    options.Listen(IPAddress.Any,44333, listenOptions =>
                    {
                      listenOptions.UseHttps("Path to SSL certificate","SSL Cert Password");
                        }

                    });
                })
                .UseStartup<Startup>()
                .Build();

Я вижу, что вы используете.NET Core.

.NET Core размещается в Kestrel вместо обычного IIS и не поддерживает проверку подлинности Windows. Хотя вы можете использовать HTTP.sys, который является реализацией веб-сервера в.NET Core и поддерживает аутентификацию Windows.

Приведенный ниже код настраивает веб-хост приложения для использования HTTP.sys с аутентификацией Windows.

public class Program
{
    public static void Main(string[] args) => 
        BuildWebHost(args).Run();

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseHttpSys(options =>
            {
                options.Authentication.Schemes = 
                    AuthenticationSchemes.NTLM | AuthenticationSchemes.Negotiate;
                options.Authentication.AllowAnonymous = false;
            })
            .Build();
}

статья, объясняющая этот код, находится здесь

Другие вопросы по тегам