Esempio n. 1
0
        public string GenerateJwtTokenAsync(string userEmail, string password)
        {
            if (!String.IsNullOrEmpty(password))
            {
                if (!_membershipProvider.VerifyUserPassword(userEmail, password))
                {
                    return("Wrong access");
                }
            }

            List <Claim> claims = _membershipProvider.GetUserClaims(userEmail);

            string publicAndPrivateKey = _rsaProvider.GetPrivateAndPublicKeyAsync();

            if (publicAndPrivateKey == null)
            {
                return("RSA key error");
            }

            RSACryptoServiceProvider publicAndPrivate = new RSACryptoServiceProvider();

            publicAndPrivate.FromXmlString(publicAndPrivateKey);

            JwtSecurityToken jwtToken = new JwtSecurityToken
                                        (
                issuer: "Any",
                audience: "Any",
                claims: claims,
                signingCredentials: new SigningCredentials(new RsaSecurityKey(publicAndPrivate), SecurityAlgorithms.RsaSha256Signature),
                expires: DateTime.Now.AddDays(30)
                                        );

            JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
            string tokenString = tokenHandler.WriteToken(jwtToken);

            return(tokenString);
        }