Ejemplo n.º 1
0
        public async Task SeedAsync()
        {
            Console.WriteLine("Uploading risk passwords");
            var totalCount    = 0;
            var riskPasswords = new List <RiskPasswordApiModel>();

            using (var streamReader = File.OpenText(settings.PwnedPasswordsPath))
            {
                var i = 0;
                while (streamReader.Peek() >= 0)
                {
                    i++;
                    var split         = streamReader.ReadLine().Split(':');
                    var breachesCount = Convert.ToInt32(split[1]);
                    if (breachesCount >= riskPasswordMoreThenBreachesCount)
                    {
                        riskPasswords.Add(new RiskPasswordApiModel {
                            PasswordSha1Hash = split[0], Count = breachesCount
                        });
                        if (riskPasswords.Count >= uploadRiskPasswordBlokSize)
                        {
                            totalCount += riskPasswords.Count;
                            await SavePasswordsRiskListAsync(await accessLogic.GetAccessTokenAsync(), riskPasswords);

                            Console.WriteLine($"Risk passwords uploaded '{totalCount}', last breaches count '{breachesCount}'");
                            riskPasswords = new List <RiskPasswordApiModel>();
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }

            if (riskPasswords.Count > 0)
            {
                Console.WriteLine("Uploading the last risk passwords");
                await SavePasswordsRiskListAsync(await accessLogic.GetAccessTokenAsync(), riskPasswords);
            }

            Console.WriteLine($"All '{totalCount}' risk passwords uploaded");
        }
Ejemplo n.º 2
0
        public async Task SeedAsync()
        {
            Console.WriteLine("Creating risk passwords");
            var riskPasswords = new List <RiskPasswordApiModel>();

            using (var streamReader = File.OpenText(settings.PwnedPasswordsPath))
            {
                var i = 0;
                while (streamReader.Peek() >= 0)
                {
                    i++;
                    var split         = streamReader.ReadLine().Split(':');
                    var passwordCount = Convert.ToInt32(split[1]);
                    if (passwordCount >= 100)
                    {
                        riskPasswords.Add(new RiskPasswordApiModel {
                            PasswordSha1Hash = split[0], Count = passwordCount
                        });
                        if (riskPasswords.Count >= 10000)
                        {
                            Console.WriteLine($"Saving risk passwords, current password count '{passwordCount}'");
                            await SavePasswordsRiskListAsync(await accessLogic.GetAccessTokenAsync(), riskPasswords);

                            riskPasswords = new List <RiskPasswordApiModel>();
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }

            if (riskPasswords.Count > 0)
            {
                Console.WriteLine("Saving the last risk passwords");
                await SavePasswordsRiskListAsync(await accessLogic.GetAccessTokenAsync(), riskPasswords);
            }

            Console.WriteLine("Risk passwords seeded");
        }
Ejemplo n.º 3
0
        private async Task SaveResourceDocumentAsync(ResourceApiModel resourceApiModel)
        {
            var accessToken = await accessLogic.GetAccessTokenAsync();

            var client = httpClientFactory.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            using (var response = await client.PostJsonAsync(ResourceApiEndpoint, resourceApiModel))
            {
                await response.ValidateResponseAsync();
            }
        }