コード例 #1
0
        public static void IsTokenValid(String Token)
        {
            if (string.IsNullOrEmpty(Token) | (Token == "undefined"))
            {
                throw new TokenInvalidException("Le token est invalide");
            }

            string key = Encoding.UTF8.GetString(Convert.FromBase64String(Token));

            string[] parts = key.Split(new char[] { ':' });
            if (parts.Length > 3 | parts.Length < 3)
            {
                throw new TokenInvalidException("Le token est invalide");
            }

            string   hash      = parts[0];
            string   username  = parts[1];
            long     ticks     = long.Parse(parts[2]);
            DateTime timeStamp = new DateTime(ticks);
            // Ensure the timestamp is valid.
            bool expired = Math.Abs((DateTime.UtcNow - timeStamp).TotalMinutes) > _expirationMinutes;

            if (expired)
            {
                throw new TokenExpireException("Le token est expiré");
            }

            CompteDAO comptedao = new CompteDAO();

            string[] Keybdd = Encoding.UTF8.GetString(Convert.FromBase64String(comptedao.GetToken(username))).Split(new char[] { ':' });
            if (Keybdd[0] != hash)
            {
                throw new TokenInvalidException("Le token est invalide");
            }
        }