当前位置: 首页 > 知识库问答 >
问题:

解析JWT以获取C语言中的声明#

贲绪
2023-03-14

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

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”类,它只有一个name属性作为string。)

我们解码的JWT负载如下所示:

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

我遇到的问题是,当我尝试按“sub”类型获取索赔时,什么都没有出现(而且它不在列表中)。但“sub”似乎是一个极为常见的说法。

我做错了什么?我能拿到主题(“sub”)索赔吗?

编辑:适用于推荐系统。IdentityModel-我在尝试使用它时出现以下错误:

共有1个答案

谭勇
2023-03-14

如果您有JWT格式的令牌,您可以使用System. IdtyModel. Tokens. Jwt.dll, v2.0.0.0并获得如下所示的主题

var jwtToken = new JwtSecurityToken(token);
    jwtToken.Subject
 类似资料:
  • 本文向大家介绍Objective-C语言XML解析,包括了Objective-C语言XML解析的使用技巧和注意事项,需要的朋友参考一下

  • 我想获取存储在JWT中的角色声明。我使用以下代码来做到这一点: 但这最终给出了目标代码: 我调试了代码,发现了这样的声明: 如何提取“ROLE_ADMIN”?

  • 本文向大家介绍解析C语言与C++的编译模型,包括了解析C语言与C++的编译模型的使用技巧和注意事项,需要的朋友参考一下 首先简要介绍一下C的编译模型: 限于当时的硬件条件,C编译器不能够在内存里一次性地装载所有程序代码,而需要将代码分为多个源文件,并且分别编译。并且由于内存限制,编译器本身也不能太大,因此需要分为多个可执行文件,进行分阶段的编译。在早期一共包括7个可执行文件:cc(调用其它可执行文

  • 本文向大家介绍详细解析C语言中的开方实现,包括了详细解析C语言中的开方实现的使用技巧和注意事项,需要的朋友参考一下 关于C语言中的开方计算,首先想到的当然是sqrt()函数,让我们先来回顾一下它的基本用法: 头文件:#include <math.h> sqrt() 用来求给定值的平方根,其原型为: 参数 x 为要计算平方根的值。 如果 x < 0,将会导致 domain error 错误,并把全局

  • 本文向大家介绍利用C语言解决八皇后问题以及解析,包括了利用C语言解决八皇后问题以及解析的使用技巧和注意事项,需要的朋友参考一下 前言 八皇后问题是一个古老而著名的问题。该问题是19世纪著名的数学家高斯1850年提出:在一个8*8国际象棋盘上,有8个皇后,每个皇后占一格;要求皇后之间不会出现相互“攻击”的现象,即不能有两个皇后处在同一行、同一列或同一对角线上。问共有多少种不同的方法? 回溯算法也叫试

  • 我有一个c模块: 我做了File fileName; 我有一个初始化函数: 所以我做了fileName=filename;我这样做的原因是我有另一个函数,我称为start(): 一开始我有文件名,但它没有找到它,所以我想用fileName代替。但我现在得到一些错误: 在这一行:fileName=fileName;在=符号上,我得到红线错误: 错误1错误C2440:“=”:无法从“常量字符*”转换为