C# JWT WriterToken函数引发IDX10653错误

C# JWT WriterToken函数引发IDX10653错误,c#,jwt,.net-5,C#,Jwt,.net 5,作为标题,jwtSecurityTokenHandler.WriteToken(jwt)函数抛出IDX10653错误。完全例外 System.ArgumentOutOfRangeException: 'IDX10653: The encryption algorithm 'System.String' requires a key size of at least 'System.Int32' bits. Key 'Microsoft.IdentityModel.Tokens.Symmetr

作为标题,jwtSecurityTokenHandler.WriteToken(jwt)函数抛出IDX10653错误。完全例外

System.ArgumentOutOfRangeException: 'IDX10653: 
The encryption algorithm 'System.String' requires a key size of at least 'System.Int32' bits. 
Key 'Microsoft.IdentityModel.Tokens.SymmetricSecurityKey', is of size: 'System.Int32'. Arg_ParamName_Name
下面是我的示例用法:

public AccessToken CreateToken(User user, List<OperationClaim> operationClaims)
{
    _accessTokenExpiration = DateTime.Now.AddMinutes(_tokenOptions.AccessTokenExpiration);
    var securityKey = SecurityKeyHelper.CreateSecurityKey(_tokenOptions.SecurityKey);
    var signingCredentials = SigningCredentialsHelper.CreateSigningCredentials(securityKey);
    var jwt = CreateJwtSecurityToken(_tokenOptions, user, signingCredentials, operationClaims);
    var jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
    var token = jwtSecurityTokenHandler.WriteToken(jwt);

    return new AccessToken
    {
        Token = token,
        Expiration = _accessTokenExpiration
    };
}

这个问题解决了

在使用SHA512加密系统和varbinary(500)时,WebApi层中appsettings.json文件的TokenOptions部分中的密码(“SecurityKey”)很短

public static SecurityKey CreateSecurityKey(string securityKey)
{
    return new SymmetricSecurityKey(Encoding.UTF8.GetBytes(securityKey));
}
"TokenOptions": {
    "Audience": "some@mailaddress.com",
    "Issuer": "some@mailaddress.com",
    "AccessTokenExpiration": 10,
    "SecurityKey": "mykey"
  }