如何在同一项目中 运行 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
然后一切都会运行顺利!
目前我有一个完美运行的身份服务器,但我想在它上面添加一个 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
然后一切都会运行顺利!