【问题标题】:C# sending data using JWT in MVC when private key is from a pfx当私钥来自 pfx 时,C# 在 MVC 中使用 JWT 发送数据
【发布时间】:2018-03-05 04:20:49
【问题描述】:

这是我在 MVC 中使用 JWT 的第一个实现。我在控制器中创建了以下令牌,以便在它们到达我的端点时传递给前端。我在 JWT.io 上使用过该工具,但我不确定它是否有效以及我在签名部分“秘密”中输入了什么。它说无效的令牌签名,但我可以看到有效负载。代码如下:

任何帮助或指出正确的方向以了解其工作原理都会很棒。

var payload = new Dictionary<string, object>()
{
     { "id", "example123" },
     { "Name", "John Doe" }
};

X509Certificate2 certX509 = new X509Certificate2(pfxFile, password);

byte[] privateKey = certX509.Export(X509ContentType.Cert, password);

string token = Jose.JWT.Encode(payload, privateKey, JwsAlgorithm.HS256);

//string[] getSecret = token.Split(".".ToCharArray());
//secret = getSecret[2];

return token; 

结果,看起来像 JWT 令牌:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImV4YW1wbGUxMjMiLCJOYW1lIjoiSm9obiBEb2UifQ.j4Ub0iWU-6xTbc3pvwfBy0v0o-Y2Ds6C5_ez3NI​​RNIk

但它不适用于https://jwt.io/。提前谢谢你:)

编辑

在玩了更多之后,我发现如果我创建一个字符串然后将其转换为字节数组,然后使用签名框中的文本 验证!!。因为我当前的字节数组是从 pfx 填充的,所以要输入的值是未知的。

【问题讨论】:

    标签: c# asp.net-mvc jwt


    【解决方案1】:

    将私钥放在秘密文本框中。正确的秘密验证令牌。 see snap

    【讨论】:

    • 感谢您的回复。基于上面的令牌,私钥的实际值是多少?我不知道在那个盒子里放什么。我已尝试复制令牌的最后一部分,但不起作用。
    • 您的令牌看起来有效。一个 jwt 令牌由 3 部分组成,头部、有效负载和签名。都存在于您的令牌中。
    • 谢谢,我知道了,我只是不明白如何获取验证签名的秘密?
    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 2021-03-23
    • 2018-06-07
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多