JwtSecurityToken.WriteToken 导致“'System.IdentityModel.Tokens.Jwt.JsonExtensions'的类型初始值设定项引发异常。

JwtSecurityToken.WriteToken causes "The type initializer for 'System.IdentityModel.Tokens.Jwt.JsonExtensions' threw an exception."

提问人:Sonnich Jensen 提问时间:11/16/2023 最后编辑:Sonnich Jensen 更新时间:11/17/2023 访问量:25

问:

以下代码给了我这个错误:The type initializer for 'System.IdentityModel.Tokens.Jwt.JsonExtensions' threw an exception.

handler = new JwtSecurityTokenHandler();
tokenStringEngineer = handler.WriteToken(token); // this line causes the error

InnerException 提供了有关错误的详细信息:

at System.IdentityModel.Tokens.Jwt.JwtPayload.SerializeToJson()
 at System.IdentityModel.Tokens.Jwt.JwtPayload.Base64UrlEncode()
 at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.WriteToken(SecurityToken token)
 at my-file.cs:line 519

在此之前,我遇到了 nuget 包的问题,特别是Microsoft.IdentityModel.Tokens

请参阅我之前的问题:无法加载文件或程序集“Microsoft.IdentityModel.Tokens - 问题

现在,安装后,我收到这个新错误。

我发现版本可能会影响它,所以我尝试了版本 10 到 13,但错误仍然存在。我发现的其他建议并没有解决我的问题。Newtonsoft.Json

所以我在这里问,有什么想法我可以尝试吗?

这是一个包含 3 个项目的解决方案,其中只有一个项目使用 JSON 和 Token 函数。

json.net identitymodel

评论


答:

0赞 Sonnich Jensen 11/17/2023 #1

我丢失了包裹System.IdentityModel.Tokens.Jwt

我通过搜索找到了解决方案,并找到了这个:

在 ASP.NET 核心 Web API 授权期间生成 JWT 令牌时出错

它现在可以工作了