🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / Token validator Header ve Payload Claim alma BEGIN PGP PRIVATE KEY END PUBLIC

1-) C# RMOS - Token validator Header ve Payload Claim alma BEGIN PGP PRIVATE KEY END PUBLIC

 

 

Açıklama : Private ve public key ile secret key oluşturulur . Oluşturulan token değeri secret key ile verify yapılır.
Token ile Secret key uyuşmazsa : SecurityTokenSignatureKeyNotFoundException

Tokenın zamanı geçmişşe : SecurityTokenNoExpirationException

verir. Hata vermezse Token geçerlidir.

 

 

using Microsoft.IdentityModel.Tokens;

using System;

using System.IdentityModel.Tokens.Jwt;

using System.Text;

using System.Windows.Forms;

 

 public bool ValidateCurrentToken()

        {

 

            string token = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzZXJ2aWNlIjoibWlkZGxld2FyZSIsImlhdCI6MTY2NzIwNDUwM30.xbhwzwHZzNmU623Yp3RTEbramazamhaber3qmYpeuiVEgSFWzlJA97TpnMZ_Wd0xFVVSIjHyZU58C9k-zTkT1r5A";

 

            var mySecurityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes("ifsramazanfvtPnlv"));

            var tokenHandler = new JwtSecurityTokenHandler();

            try

            {

                tokenHandler.ValidateToken(token, new TokenValidationParameters

                {

                       ValidateIssuerSigningKey = true,

                        IssuerSigningKey = mySecurityKey,

                        ValidateLifetime = false,

                        ValidateIssuer = false,

                        ValidateAudience = false,

                }, out SecurityToken validatedToken);

            }

            catch (SecurityTokenSignatureKeyNotFoundException ex)  

            {

                Console.WriteLine("Signature validation failed " + ex.Message);

 

            }

            catch (SecurityTokenNoExpirationException ex)

            {

                Console.WriteLine("Lifetime validation failed " + ex.Message);

 

            }

            catch (Exception ex)

            {

                

                Console.WriteLine("Other exception: " + ex.Message);

            }

            return true;

        }

 

        

        public void GetPayload(string token)

        {

            var handler = new JwtSecurityTokenHandler();

            var tokenData = handler.ReadJwtToken(token);

            JwtPayload payload= tokenData.Payload;

            JwtHeader header= tokenData.Header;

            foreach (var item in payload)

            {

                Console.WriteLine(item.Key+":"+item.Value+"\n");

            }

        }

 

 

 

diğer : Gpg4win.exe uygulaması ile private ve public key oluşturabilirsin.

jwt generator : https://www.javainuse.com/jwtgenerator

 

 2022 Kasım 02 Çarşamba
 305