Ejemplo n.º 1
0
        public async Task <ActionResult <WebApiResponse> > SignIn([FromBody] UserSignInDTO userDTO)
        {
            ISigninModelUser signinModelUser = new SigninModelUser(userDTO.Username, userDTO.Password);

            ISigninModelResponse signinModelResponse = await _authentication.SignInUser(signinModelUser);

            return(new WebApiResponse().Success().SetData(signinModelResponse));
        }
        public UserSignInResponseDTO UserSignIn(UserSignInRequestDTO userSignInRequestDTO)
        {
            _logger.LogInformation("UserSignIn email:" + userSignInRequestDTO.Email);
            UserSignInDTO       userSignInDTO       = _mapper.Map <UserSignInDTO>(userSignInRequestDTO);
            UserSignInResultDTO userSignInResultDTO = _userService.UserSignIn(userSignInDTO);

            return(_mapper.Map <UserSignInResponseDTO>(userSignInResultDTO));
        }
Ejemplo n.º 3
0
        public async Task UserSignIn(UserSignInDTO dto)
        {
            // TODO: add email confirmation
            await ValidateUser(dto.Name, dto.Email, dto.Password);

            dto.Password = EncryptPassword(dto.Password);

            var user = new User(dto.Name, dto.Email, dto.Password);
            await _userRepository.Create(user);
        }
        public async Task <IActionResult> Authenticate(UserSignInDTO userdata)
        {
            var loginresult = await _authmanager.AuthenticateUserCredentials(userdata.SuppliedUserName.ToLower(), userdata.SuppliedPassword, userdata.VerificationCode);

            if (loginresult.ValidatedUser == null)
            {
                return(CreateUnauthorizedError(loginresult.Error));
            }
            loginresult.ValidatedUser.Token = _tokenManager.GenerateToken(loginresult.ValidatedUser);
            return(Ok(loginresult.ValidatedUser));
        }
Ejemplo n.º 5
0
        public async Task When_SignIn_Fail()
        {
            UserSignInDTO fakeCredentials = new UserSignInDTO
            {
                Username = _faker.Person.UserName,
                Password = _faker.Internet.Password(8)
            };

            var response = await Helpers.ApiHelper.SendPostRequestAndGetResponse <UserSignInDTO>(
                _webClient, SigninUrl, fakeCredentials);

            Assert.AreEqual(expected: 401, actual: (int)response.StatusCode);
        }
Ejemplo n.º 6
0
        public IActionResult Login([FromBody] UserSignInDTO userSignInDTO)
        {
            var userRepository = _unitOfWork.Users;
            var user           = userRepository.GetUserByEmail(userSignInDTO.Email);

            if (user == null)
            {
                return(BadRequest("Invalid email/username or password"));
            }
            if (userRepository.Authenticate(user, userSignInDTO.Password))
            {
                return(Ok(userRepository.GenerateJWTToken(user)));
            }
            return(BadRequest("Invalid email/username or password"));
        }
Ejemplo n.º 7
0
        public void RegistrationUser(RegistrationModel registration)
        {
            UserSignInDTO = new UserSignInDTO
            {
                Rank          = "User",
                Login         = registration.Login,
                Password      = registration.Password,
                OperationBool = new List <OperationsOfUser <bool> >(1),
                OperationChar = new List <OperationsOfUser <char> >(1),
                OperationInt  = new List <OperationsOfUser <int> >(1),
                OperationWord = new List <OperationsOfUser <Word> >(1)
            };

            IsLogin = true;
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> SignIn([FromBody] UserSignInDTO user)
        {
            var result = await _signInManager.PasswordSignInAsync(user.Email, user.Password, false, false);

            if (result == SignInResult.Success)
            {
                var appUser = await _context.Users.FirstOrDefaultAsync(u => u.Email == user.Email);

                string token = GenerateAccessToken(appUser);
                return(Ok(token));
            }
            else
            {
                return(Unauthorized());
            }
        }
Ejemplo n.º 9
0
        public async Task <object> Login([FromBody] UserSignInDTO usr)
        {
            User user = await _context.Users.FirstOrDefaultAsync(u => u.Email == usr.Email);

            #region CheckIsNull
            if (user == null)
            {
                return(NotFound());
            }
            #endregion

            #region CheckPasswordIsIncorrect
            if (!CryptoHelper.Crypto.VerifyHashedPassword(user.Password, usr.Password))
            {
                return(StatusCode(401, "Password is incorrect"));
            }
            #endregion

            #region CheckModelIsInvalid
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            #endregion

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(_configuration.GetSection("AppSettings:Token").Value);

            var tokenDescription = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, user.Id)
                }),
                Expires            = DateTime.Now.AddHours(4),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature)
            };

            var token       = tokenHandler.CreateToken(tokenDescription);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(new {
                id = user.Id,
                token = tokenString
            }));
        }
Ejemplo n.º 10
0
        public void SignInUser(SignInModel signIn)
        {
            UserSignInDTO = new UserSignInDTO
            {
                Rank          = signIn.Rank,
                Login         = signIn.Login,
                Password      = signIn.Password,
                OperationBool = new List <OperationsOfUser <bool> >(1),
                OperationChar = new List <OperationsOfUser <char> >(1),
                OperationInt  = new List <OperationsOfUser <int> >(1),
                OperationWord = new List <OperationsOfUser <Word> >(1)
            };

            if (UserSignInDTO.Rank == "User")
            {
                IsLogin = true;
            }
            else if (UserSignInDTO.Rank == "Admin")
            {
                IsLoginSuperUser = true;
            }
        }
Ejemplo n.º 11
0
        public UserSignInResultDTO UserSignIn(UserSignInDTO userSignInDTO)
        {
            AccountFindResultDTO accountFindResultDTO = _accountService.Find(userSignInDTO.Email);
            //TODO migrate to _accountService
            AuthVerifyDTO authVerifyDTO = new AuthVerifyDTO {
                ValueRaw  = userSignInDTO.Password,
                ValueSalt = accountFindResultDTO.PasswordSalt,
                ValueHash = accountFindResultDTO.PasswordHash
            };

            _authService.Verify(authVerifyDTO);
            AuthTokenDTO authTokenDTO = new AuthTokenDTO {
                SubjectRaw = new Dictionary <string, string>
                {
                    ["id"] = userSignInDTO.Email
                },
                Claims = new Dictionary <string, object>()
            };
            AuthTokenResultDTO authTokenResultDTO = _authService.AuthToken(authTokenDTO);

            return(new UserSignInResultDTO {
                Token = authTokenResultDTO.Token
            });
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> SignIn([FromBody] UserSignInDTO dto)
        {
            await _userService.UserSignIn(dto);

            return(Ok());
        }
Ejemplo n.º 13
0
 public ValidationUser(string login, string password, UserSignInDTO user)
 {
     this.user     = user;
     this.login    = login;
     this.password = password;
 }
Ejemplo n.º 14
0
 public bool DeleteUser(UserSignInDTO user)
 {
     return(repository.DeleteUser(user.Login));
 }