Beispiel #1
0
        private string Authenticate(Credentials login)
        {
            if (String.IsNullOrWhiteSpace(login.Username) || String.IsNullOrWhiteSpace(login.Password))
            {
                return(null);
            }

            var salt = _cache.Get(login.Username);

            if (String.IsNullOrWhiteSpace(salt))
            {
                return(null);
            }

            var user = _userRepository.GetUserByUsername(login.Username).Result;

            if (user == null)
            {
                return(null);
            }

            string saltedPassword = SHA.ComputePasswordAndSalt(user.Password, salt, SHA256.Create());

            return(saltedPassword.Equals(login.Password) ? BuildToken(user) : null);
        }
Beispiel #2
0
        public async Task IsAuthenticationPossible(string password, bool sucessfulResponse)
        {
            var challangeResponse = await DefaultClient.GetAsync("api/auth/Admin");

            string challangeBody = await challangeResponse.Content.ReadAsStringAsync();

            string salt = challangeBody.Trim('"');

            var hashedPassword = SHA.GenerateSHA256String(password);
            var hashedWithSalt = SHA.ComputePasswordAndSalt(hashedPassword, salt, SHA256.Create());

            var jsonString = JsonConvert.SerializeObject(hashedWithSalt);
            var content    = new StringContent(jsonString, Encoding.UTF8, "application/json");

            var authResponse = await DefaultClient.PostAsync("api/auth/Admin", content);

            string authBody = await authResponse.Content.ReadAsStringAsync();

            Assert.Equal(sucessfulResponse, authResponse.IsSuccessStatusCode);
        }
Beispiel #3
0
        public static async Task <AuthenticationHeaderValue> AdminAuthorization(HttpClient client)
        {
            var challangeResponse = await client.GetAsync("api/auth/Admin");

            string challangeBody = await challangeResponse.Content.ReadAsStringAsync();

            string salt = challangeBody.Trim('"');

            var hashedPassword = SHA.GenerateSHA256String("AAdmin12!");
            var hashedWithSalt = SHA.ComputePasswordAndSalt(hashedPassword, salt, SHA256.Create());

            var jsonString = JsonConvert.SerializeObject(hashedWithSalt);
            var content    = new StringContent(jsonString, Encoding.UTF8, "application/json");

            var authResponse = await client.PostAsync("api/auth/Admin", content);

            string authBody = await authResponse.Content.ReadAsStringAsync();

            string token = authBody.Trim('"');

            return(new AuthenticationHeaderValue("Bearer", token));
        }