Example #1
0
        public async static Task <string> GenerateToken(UserToken UserToken, int expireMinutes = 20)
        {
            Models.ManagerFiles.Settings setting = Models.ManagerFiles.ManagerFilesService.GetSettingsInfo();
            string Secret       = setting.Secret;
            var    symmetricKey = Convert.FromBase64String(Secret);
            var    tokenHandler = new JwtSecurityTokenHandler();

            var now             = DateTime.UtcNow;
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new[]
                {
                    new Claim("Id", UserToken.Id.ToString()),
                    new Claim("Email", UserToken.Email),
                    new Claim("UserName", UserToken.UserName),
                }),

                Expires            = now.AddMinutes(Convert.ToInt32(expireMinutes)),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(symmetricKey), SecurityAlgorithms.HmacSha256Signature)
            };
            var stoken = tokenHandler.CreateToken(tokenDescriptor);
            var token  = tokenHandler.WriteToken(stoken);

            return(token);
        }
Example #2
0
        public static bool ValidateToken(string token, out UserToken UserToken)
        {
            UserToken = new UserToken();
            var tokenHandler = new JwtSecurityTokenHandler();
            var jwtToken     = tokenHandler.ReadToken(token) as JwtSecurityToken;

            if (jwtToken == null)
            {
                return(false);
            }

            var a = jwtToken.Claims.GetType();
            var b = jwtToken.Claims.ToArray();
            Dictionary <string, string> dAttributes = new Dictionary <string, string>();

            for (int k = 0; k < b.Count(); k++)
            {
                string type  = b[k].Type;
                string value = b[k].Value;
                dAttributes.Add(type, value);
            }
            UserToken.Id       = int.Parse(dAttributes["Id"]);
            UserToken.Email    = dAttributes["Email"];
            UserToken.UserName = dAttributes["UserName"];

            Models.ManagerFiles.Settings setting = Models.ManagerFiles.ManagerFilesService.GetSettingsInfo();
            string Secret = setting.Secret;

            byte[] key = Convert.FromBase64String(Secret);
            TokenValidationParameters parameters = new TokenValidationParameters()
            {
                RequireExpirationTime = true,
                ValidateIssuer        = false,
                ValidateAudience      = false,
                IssuerSigningKey      = new SymmetricSecurityKey(key)
            };
            SecurityToken securityToken;

            try
            {
                ClaimsPrincipal principal = tokenHandler.ValidateToken(token, parameters, out securityToken);
                Boolean         akkk      = principal.Identity.IsAuthenticated;
                var             clam      = principal.Claims;
                // Get the claims values
                var exp = principal.Claims.Where(c => c.Type == "exp")
                          .Select(c => c.Value).SingleOrDefault();

                return(akkk);
            }
            catch (Exception)
            {
                return(false);
            }
        }