Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从token中提取和获取索赔?_C#_Token_Access Token_Claims Based Identity_Claims - Fatal编程技术网

C# 如何从token中提取和获取索赔?

C# 如何从token中提取和获取索赔?,c#,token,access-token,claims-based-identity,claims,C#,Token,Access Token,Claims Based Identity,Claims,我一直在寻找一个确切的答案,但似乎大多数答案都是客户电话,超出了范围 问题:我已经有一个访问令牌访问令牌。如何使用c#代码获得仅提供访问令牌的声明 我认为:以下是相同的问题,但没有我认为合适的答案 安装软件包Newtonsoft.Json 访问令牌只是base64编码的JSON。您可以按如下方式解析令牌 string token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODk

我一直在寻找一个确切的答案,但似乎大多数答案都是客户电话,超出了范围

问题:我已经有一个访问令牌访问令牌。如何使用c#代码获得仅提供访问令牌的声明

我认为:以下是相同的问题,但没有我认为合适的答案


安装软件包Newtonsoft.Json

访问令牌只是base64编码的JSON。您可以按如下方式解析令牌

        string token =
            "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ";
        var parts = token.Split('.');
        var decoded = Convert.FromBase64String(parts[1]);
        var part = Encoding.UTF8.GetString(decoded);
        var jwt = JObject.Parse(part);
        var name = jwt["name"].Value<string>();
字符串标记=
“EYJHBGCIOIJIUZI1NIISINR5CCIKPXVCJ9.EYJZWIIxMJ0Nty3ODKWIIbMfTzSi6IKpVAg4GrG9LiIwIwIwIwWrIonRyDWV9.TJVA95ORM7E2CBAB30RMHrHdCEFxJoyZEFH7HGQ”;
var parts=token.Split('.');
var decoded=Convert.FromBase64String(第[1]部分);
var part=Encoding.UTF8.GetString(已解码);
var jwt=JObject.Parse(部分);
var name=jwt[“name”].Value();
更新

  • 不建议在客户端上分析访问令牌,请选择访问令牌 应仅在资源服务器上解析
  • 您必须验证资源服务器上的访问令牌,才能进行访问 确保令牌在途中未被篡改
  • 大多数情况下,您不需要像上面那样解析令牌,只需使用 推荐的JWT库,它同时执行验证和解析。e、 g

    app.useAuthBeareAuthentication(新的OAuthBeareAuthenticationOptions())


  • 澄清一下:你想在服务器上,只给一个用户的承载令牌来识别他的声明吗?是的,可能吗?这个呢?它是。我试图在中解码我的令牌,其中包括。在你发布答案之前,我编辑了我的最后一条评论-请查看该评论中的链接,这可能会对你有所帮助。