Как запустить IdentityServer3 в качестве службы Windows

У меня есть некоторый опыт работы со службами Windows, и я просто промочаюсь с IdentityServer3. Мое текущее решение отлично работает в IISExpress, но я не могу заставить его работать в IIS. Поэтому я подумал, что может быть проще разместить его в службе Windows, но я не смог найти ни одного примера для запуска и запуска. Кто-нибудь использовал этот подход?

Сначала я должен создать экземпляр класса IS3 Startup в моем методе OnStart, а затем вызвать метод Configuration для создания моего сервера аутентификации, но этот метод принимает параметр IAppBuilder, и я не знаю, как его создать. Любые идеи были бы хорошы.

1 ответ

Я делаю что-то похожее на это...

public partial class ServiceHost : ServiceBase
{
    private IDisposable _service;

    public ServiceHost()
    {
        InitializeComponent();
    }

    public void Start(string[] args) { OnStart(args); }

    protected override void OnStart(string[] args)
    {
        var options = new StartOptions("https://localhost:44331/");

        _service = WebApp.Start(options, Configuration);
    }

    protected override void OnStop()
    {
        _service?.Dispose();
    }

    private static void Configuration(IAppBuilder app)
    {
        var factory = new IdentityServerServiceFactory()
            .UseInMemoryUsers(Users.Get())
            .UseInMemoryClients(Clients.Get())
            .UseInMemoryScopes(Scopes.Get());

        var idsrvOptions = new IdentityServerOptions
        {
            Factory = factory,
            SigningCertificate = Cert.Load(),
            AuthenticationOptions = new AuthenticationOptions
            {
                // This is where we configure External Identity Providers
                IdentityProviders = ConfigureIdentityProviders
            }
        };

        app.UseIdentityServer(idsrvOptions);
    }

    private static void ConfigureIdentityProviders(IAppBuilder app, string signInAsType)
    {
    }
}
Другие вопросы по тегам