【发布时间】:2015-09-17 22:55:45
【问题描述】:
我们的高级开发人员编写了以下代码,作为示例:
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。
我在这里做错了什么?去我得到主题(“sub”)声明吗?
编辑:对于那些推荐 system.IdentityModel - 我在尝试使用它时收到此错误:
【问题讨论】: