0

Azure ADログインからアクセストークンを取得しています。 しかし、私はアクセストークンからデータを抽出するためにJWT dllを使いたくありません。 だから私はこれのための代替ソリューションが必要です。 これは、JWTJWTなしでアクセストークンからユーザーデータを取得する方法

var handler = new JwtSecurityTokenHandler(); 
      JwtSecurityToken tokenS = handler.ReadToken(data.AccessToken) as JwtSecurityToken; 
      var claims = tokenS.Claims; 
      var username = claims.FirstOrDefault(s => s.Type == "email").Value; 

の私のサンプルコードは、DLLを使用している:System.IdentityModel.Tokens.Jwtを使用して、 私はこのdllがデータを抽出するのを望んでいません。私はdllを使用せずに別の解決策が必要です。

答えて

1

私は、自分が意図している目的のために持っているライブラリを使いたくない理由を尋ねません。とにかくJWTはと連結わずか3ベース64の符号化された文字列であり、(その署名されたが、暗号化されていないと仮定して)

だから「」

var split = jwt.Split('.') 
var token = Convert.FromBase64String(split([1])) 

真ん中のビットを読み出すためにnewtonsoftを使用し、JSONにトークンでありますそれはあなたの答えに感謝します。

+0

それは私のために働いています。 –

+0

答えを受け入れてください – pm100

+0

ベース64のエンコードされた文字列をデコードするだけで問題は、署名を検証しないことです。したがって、あなたが期待しているソースからJWTトークンが生成されるという保証はありません。 – RasmusW

関連する問題