【发布时间】:2023-03-27 19:49:01
【问题描述】:
这曾经有效...
回到...我有一个自定义的securityTokenHandler。我更新到 3.02 版本,我能够删除自定义处理程序并直接引用 JwtSecurityTokenHandler。
<securityTokenHandlers>
<add type="System.IdentityModel.Tokens.JwtSecurityTokenHandler,
System.IdentityModel.Tokens.Jwt" />
<securityTokenHandlerConfiguration>
<certificateValidation certificateValidationMode="PeerTrust" />
</securityTokenHandlerConfiguration>
</securityTokenHandlers>
这似乎是一种改进。所以从那以后我一直在使用它。
现在我更新到 4.0.0 并收到此错误...
[NotSupportedException: IDX11008: This method is not supported to validate a 'jwt' use the method: ValidateToken(String, TokenValidationParameters, out SecurityToken).]
System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateToken(SecurityToken token) +46
System.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(SecurityToken token) +73
System.IdentityModel.Services.TokenReceiver.AuthenticateToken(SecurityToken token, Boolean ensureBearerToken, String endpointUri) +120
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase request) +493
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +364
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
看东西,ValidateToken() 方法已完全弃用。所以...我想知道如何通过来自 web.config 的被动重定向调用ValidateToken(String, TokenValidationParameters, out SecurityToken)?我是否必须再次将其包装在自定义处理程序中,还是需要做一些不同的事情?
谢谢
【问题讨论】: