我得到以下异常。我已经使用POST方法来获得令牌使用服务主体消息=“IDX10708:‘System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler’无法读取该字符串
我生成使用“访问令牌” https://login.microsoftonline.com/ {} TenantId /的oauth2 /令牌”,并试图验证
SecurityToken securityToken;
JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
IConfigurationManager<OpenIdConnectConfiguration> configurationManager =
new ConfigurationManager<OpenIdConnectConfiguration>(
$"https://login.microsoftonline.com/{tenantId}/.well-known/openid-configuration",
new OpenIdConnectConfigurationRetriever());
OpenIdConnectConfiguration openIdConfig = await configurationManager.GetConfigurationAsync(CancellationToken.None);
TokenValidationParameters validationParameters = new TokenValidationParameters()
{
ValidateLifetime = true,
IssuerSigningKeys = openIdConfig.SigningKeys,
ValidateIssuerSigningKey = true,
RequireSignedTokens = true
};
var userClaims = handler.ValidateToken(token, validationParameters, out securityToken);
return userClaims.Claims.Where(claim => claim.Type == "appid").FirstOrDefault().Value;
我得到的例外,同时验证
请尝试通过把try / catch块来验证码,并查看在调试器中要求值如uniquer_name等
你可以按照这个线索更加清晰: -
When is JWTSecurityTokenHandler.ValidateToken() actually valid?
希望能帮助到你。