相关疑难解决方法(0)

如何加密JWT安全令牌?

我需要通过签名和加密来保护我的网络令牌.我编写了下一行代码:

var tokenHandler = new JwtSecurityTokenHandler();
var tokenDescriptor = new SecurityTokenDescriptor
{
      Subject = new ClaimsIdentity(new[]
         {
             new Claim(ClaimTypes.Name, owner.Name),
             new Claim(ClaimTypes.Role, owner.RoleClaimType),
             new Claim("custom claim type", "custom content")
         }),
      TokenIssuerName = "self",
      AppliesToAddress = "http://www.example.com",
      Lifetime = new Lifetime(now, now.AddSeconds(60 * 3)),
      EncryptingCredentials = new X509EncryptingCredentials(new X509Certificate2(cert)),
      SigningCredentials = new X509SigningCredentials(cert1)
};
var token = (JwtSecurityToken)tokenHandler.CreateToken(tokenDescriptor);            
var tokenString = tokenHandler.WriteToken(token);
Run Code Online (Sandbox Code Playgroud)

所以,我正在使用一些生成的证书makecert.exe.然后我用另一个读取令牌字符串JwtSecurityTokenHandler:

var tokenHandlerDecr = new JwtSecurityTokenHandler();
var tok = tokenHandlerDecr.ReadToken(tokenString);
Run Code Online (Sandbox Code Playgroud)

并且令牌内容未加密(我可以tok在调试器下看到变量中的json ).我究竟做错了什么?如何加密令牌数据?

c# security wif jwt

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×1

jwt ×1

security ×1

wif ×1