在将 IdentityServer4 从 .net 7 升级至 .net 9 时遇到的问题,升级过程中将 System.IdentityModel.Tokens.Jwt
从 6.25.0
升级至 8.9.0
,JsonWebKey
所在的 Microsoft.IdentityModel.Tokens
也随之被升级至 8.9.0
升级后,下面的代码通过 json 发序列化 JsonWebKey 时失败,完整代码见 IdentityServerBuilderExtensionsCryptoTests.cs#L39
var json =
@"{
""alg"" : ""RS256"",
""kty"" : ""RSA"",
""use"" : ""sig"",
""d"" : ""..."",
""e"" : ""AQAB"",
""n"" : ""...""",
""p"" : ""...""",
""q"" : ""...""",
""dp"" : ""...""",
""dq"" : ""...""",
""qi"" : ""...""",
}";
var jsonWebKey = new JsonWebKey(json);
报错信息如下:
System.ArgumentException : IDX10805: Error deserializing json: '{...'
竟然是 }
之前多余的逗号 ,
引起的