如何在同一项目中 运行 IdentityServer 和 WebAPI

How to run IdentityServer and WebAPI in same project

目前我有一个完美运行的身份服务器,但我想在它上面添加一个 API 以通过 Web 前端更改一些数据库配置。文档中的示例展示了如何使用 MVC 执行此操作,而不是 WebAPI.

Startup.Configuration 方法如下所示:

app.UseIdentityServer(new IdentityServerOptions{ ... });

...

app.Map("/api", apiApp =>
{
    apiApp.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
    {
        Authority = "https://localhost:44300", // URL of identity server
    });
});

然而,当 app.Map 被调用时,它会抛出一个错误,因为它无法到达身份服务器,大概是因为它还没有启动。我怎样才能让它们一起正常工作?

当我在 Whosebug 上 post 时总是会发生这种情况,我在 posted 几秒钟后就想通了!对于遇到此问题的任何其他人,请在

IdentityServerBearerTokenAuthenticationOptions

设置

DelayLoadMetadata = true

然后一切都会运行顺利!