public string GenerateSecretCodeUrlSafe(int minLength, int maxLength) { var random = new RandomGenerator(); var length = random.RandomNumber(minLength, maxLength); var cryptoRandomDataGenerator = new RNGCryptoServiceProvider(); byte[] buffer = new byte[length]; cryptoRandomDataGenerator.GetBytes(buffer); string uniq = Convert.ToBase64String(buffer).Replace('+', '-').Replace('/', '-').TrimEnd('=').Trim('-'); return uniq; }