ASP.NET Core Identity 和 IdentityServer4 都是基於 ASP.NET Core 身份認證系統實現的一個組件,
當我們在 IdentityServer4 中集成 ASP.NET Core Identity 這個組件時,會出現一些奇怪的問題,比如看起來已經認證通過,但 WebApi 卻返回 404
這是由於 Identity 會註冊它自己 AuthenticationScheme,而 IdentityServer4 也會註冊自己的 Scheme,我們需要在調用 services.AddAuthentication( options=> { } )
中替換掉 Identity 的 Scheme,因爲我們真正使用的是 IdentityServer4 的 Scheme。
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = "Bearer";
options.DefaultChallengeScheme = "Bearer";
})
必須在 services.AddIdentity<T>()
之後調用 service.AddAuthentication()
才能覆蓋。