當我嘗試對/connect/token
端點執行HTTP/POST,我得到一個NullReferenceException
以下堆棧跟蹤:IHttpAuthenticationFeature.Handler爲空時
在IdentityServer4.Hosting.AuthenticationHandler.AuthenticateAsync(AuthenticateContext 上下文) 在Microsoft.AspNetCore.Http.Authentication.Internal.DefaultAuthenticationManager.d__12.MoveNext()
調試到IdentityServer4的源代碼,我發現這種情況監守IHttpAuthenticationFeature
從HttpContext.Features
是null
,因此代碼落入if(auth == null)
情況下(看源代碼here):
IHttpAuthenticationFeature GetAuthentication()
{
var auth = _context.HttpContext.Features.Get<IHttpAuthenticationFeature>();
if (auth == null)
{
auth = new HttpAuthenticationFeature();
_context.HttpContext.Features.Set(auth);
}
return auth;
}
我Startup.ConfigureServices(...)
如下所示:
services.AddTransient<IUserStore<IdentityUser>, CustomStore>
(
provider => new CustomStore
(
Configuration["company:data:legacy:connectionString"]
)
);
services.AddIdentity<IdentityUser, IdentityRole>()
.AddUserManager<IdentityUserManager>()
.AddDefaultTokenProviders();
services.AddIdentityServer()
.AddTemporarySigningCredential()
.AddInMemoryApiResources(IdentityConfig.GetApiResources())
.AddInMemoryClients(IdentityConfig.GetClients())
.AddAspNetIdentity<IdentityUser>();
,如果我我想不出缺少一些服務註冊或配置。
嘿,但我使用郵差測試'/連接/令牌'。而我的客戶不會是基於.NET Core的。 –
你也通過郵遞員授權嗎?你可以粘貼你的發佈請求? – JayDeeEss
我只想得到至少一個'401'。我假設我應該能夠發送一個沒有標題和無效憑證的請求,它應該工作,我誤解了嗎? –