C# 使用Jwt Dotnet生成有效令牌

C# 使用Jwt Dotnet生成有效令牌,c#,jwt,C#,Jwt,我正在使用下面的代码,这是我从 私有静态字符串CreateToken(UserPrincipal) { /* * https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims * http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html */ var key=ConfigurationManager.AppSettings[“jwt key”];

我正在使用下面的代码,这是我从

私有静态字符串CreateToken(UserPrincipal)
{
/*
* https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
* http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html
*/
var key=ConfigurationManager.AppSettings[“jwt key”];
var声明=新字典()
{
{ClaimTypes.Name,“彩虹破折号”},
{ClaimTypes.WindowsAccountName,“RDash”}
};
var算法=新的HMACSHA256Algorithm();
var serializer=new JsonNetSerializer();
var urlEncoder=new JwtBase64UrlEncoder();
var编码器=新的JwtEncoder(算法、序列化程序、URLCoder);
var token=encoder.Encode(声明、密钥);
返回令牌;
}
上述代码生成以下令牌:

EYJ0Exaiioijkvc1qiljHbgIjiuzi1Nij9.Eyjodhrwoi8vc2nozw1Hcy54Bwxzb2fLm9Yzy93cy8Ymda1lZw50AxR5l2NsylTcy9Uyw1LijOiUiUmFPBMjVdybyxNOiIiIiIw0DovL3njagVtyxMub9Zb2zLnVbS93c8y8Ymda2l2lKw5AxL2L2LzWc2L2LzWw2Lzl2Lsyl2Nc3Yw2NjWw2NjWw2NjWw2Nj5Vw2Nj2Nj5Vw2Nzl2Nzl2NjW

所以,我跳过去测试我的代币。我听说我的签名无效


我如何给它一个有效的“签名”?我不明白我的JWT缺少什么。

如果您在创建令牌时给您的令牌使用的秘密签名密钥,JWT.io上的工具可以验证令牌的数字签名:

从您的代码来看,它是包含在以下内容中的值:

ConfigurationManager.AppSettings["jwt-key"];
只需在“secret”文本框中输入值,如果令牌的签名与JWT.io计算的签名匹配,则会收到一条消息,说明签名有效

ConfigurationManager.AppSettings["jwt-key"];