C# 什么';IdentityServer 4中JWTBeareEvents的默认质询实现是什么?
如果有人能给我点启示,我会非常高兴的 出于某种原因,在令牌经过身份验证之后,在对其进行验证之后,会调用此方法,并且出于某种原因,如果我不使用C# 什么';IdentityServer 4中JWTBeareEvents的默认质询实现是什么?,c#,authentication,asp.net-core,authorization,identityserver4,C#,Authentication,Asp.net Core,Authorization,Identityserver4,如果有人能给我点启示,我会非常高兴的 出于某种原因,在令牌经过身份验证之后,在对其进行验证之后,会调用此方法,并且出于某种原因,如果我不使用JwtBearerChallengeContext.HandleResponse(),我总是会得到一个未经授权的消息 因此,问题就来了——这个问题的默认实现是什么,这样我在实现自己的Challenge(通过使用OnChallenge属性)时就不会错过或弄糟一些东西,它将使用JwtBearerChallengeContext.HandleResponse()
JwtBearerChallengeContext.HandleResponse()
,我总是会得到一个未经授权的消息
因此,问题就来了——这个问题的默认实现是什么,这样我在实现自己的Challenge
(通过使用OnChallenge
属性)时就不会错过或弄糟一些东西,它将使用JwtBearerChallengeContext.HandleResponse()
这是我当前的实现,没有考虑最初应该做什么:
.AddIdentityServerAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme, (IdentityServerAuthenticationOptions options) =>
{
options.JwtBearerEvents.OnChallenge = ? // What does this by default do? I can't find its source anywhere...
};
我忍不住担心我可能错过了什么,或者做了错事
EDIT:我在那里找到了,但它并没有确切显示
eventContext
本身的功能。我只知道它是通过包的默认实现传递的IdentityServer4.AccessTokenValidation
,它不能是空方法(否则,正如我们在上面的代码中看到的,身份验证将失败)。您解决了这个问题吗?我也有类似的问题。@TjDillashaw我会在周末检查这个问题,如果我发现了什么,我会把它作为答案发布。我现在不记得了,你解决了吗?我也有类似的问题。@TjDillashaw我会在周末检查这个问题,如果我发现了什么,我会把它作为答案发布。我现在不记得了。
.AddIdentityServerAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme, (IdentityServerAuthenticationOptions options) =>
{
options.JwtBearerEvents.OnChallenge = context =>
{
if (context.AuthenticateFailure == null && context.Error == null
&& context.ErrorDescription == null && context.ErrorUri == null)
{
context.HandleResponse();
}
return Task.CompletedTask;
};
};