gpt4 book ai didi

c# - 解析 JWT 以获取 C# 中的声明

转载 作者:太空狗 更新时间:2023-10-29 19:50:04 26 4
gpt4 key购买 nike

我们的高级开发人员编写了以下代码,作为示例:

public class TokenParser 
{
private Token token;

public Token Parse(HttpRequestMessage r)
{
IOwinContext context = r.GetOwinContext();
token = new Token();
ParseData(context);
return token;
}

private void ParseData(IOwinContext context)
{
token.Name= context.Authentication.User.Claims.Single(x => x.Type == ClaimTypes.Name).Value;
}
}

(还有一个“Token.cs”类,它只有一个名称属性作为字符串。)

我们的 decoded JWT 负载如下所示:

{
"iss": "https://someissuer.com/",
"sub": "I want this string, atm I get it manually",
"aud": "11543fdsasf23432",
"exp": 33244323433,
"iat": 23443223434
}

我遇到的问题是,当我尝试通过类型“sub”获得声明时,什么也没有出现(而且它不在列表中)。但是“子”似乎是一个 extremely common claim .

我在这里做错了什么?去我得到主题(“子”)声明吗?

编辑:对于那些推荐 system.IdentityModel 的人——我在尝试使用它时遇到了这个错误:

identityModelError

最佳答案

如果您有 JWT 格式的 token ,您可以使用 System.IdentityModel.Tokens.Jwt.dll, v2.0.0.0 并获取如下所示的主题

var jwtToken = new JwtSecurityToken(token);
jwtToken.Subject

关于c# - 解析 JWT 以获取 C# 中的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31150223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com