Vous trouverez ci-dessous le code que je souhaite utiliser pour créer un jeton à partir d'une clé privée personnalisée. Là où j'obtiens une erreur pour la méthode rsa.ImportRSAPrivateKey (privateKey, out _) qui n'est pas prise en charge dans le cadre 2.0 .net

        public string CreateToken(string _customerprivateKey, List<Claim> keypairs)
        {
            try
            {
                IdentityModelEventSource.ShowPII = true;
                // var privateKey = privateKeybyteArr;

                byte[] privateKey = Convert.FromBase64String(_customerprivateKey);

                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);
                **rsa.ImportRSAPrivateKey(privateKey, out _); // not supported in 2.0 .net framework**

                var signingCredentials = new SigningCredentials(
                    new RsaSecurityKey(rsa),
                    SecurityAlgorithms.RsaSha512)
                {
                    CryptoProviderFactory = new CryptoProviderFactory { CacheSignatureProviders = false }
                };

                List<System.Security.Claims.Claim> _claims = new List<System.Security.Claims.Claim>();
                foreach (var item in keypairs)
                {
                    _claims.Add(new System.Security.Claims.Claim(item.Key, item.Value));
                }
                var jwt = new JwtSecurityToken(
                    claims: _claims,
                    signingCredentials: signingCredentials
                );

                string token = new JwtSecurityTokenHandler().WriteToken(jwt);
                return token;
            }
            catch (Exception ex)
            {
                throw;
            }

        }
-1
Saba 9 mars 2021 à 08:23

1 réponse

Meilleure réponse

J'ai passé le privateKey au format XML à la méthode createToken qui a résolu mon problème. Cryptage / décryptage C # RSA avec transmission.

0
Saba 10 mars 2021 à 09:18