Exemplo n.º 1
0
        private async Task <ClaimsIdentity> GetClaimsIdentity(string userName, string password)
        {
            try
            {
                if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password))
                {
                    return(await Task.FromResult <ClaimsIdentity>(null));
                }

                // get the user to verifty
                ILogicUsers lusers       = Business.UsersLogic(_userManager);
                AppUser     userToVerify = await lusers.FindByNameAsync(userName);

                if (userToVerify == null)
                {
                    return(await Task.FromResult <ClaimsIdentity>(null));
                }

                // check the credentials
                if (await lusers.CheckPasswordAsync(userToVerify, password))
                {
                    return(await Task.FromResult(_jwtFactory.GenerateClaimsIdentity(userName, userToVerify.Id)));
                }

                // Credentials are invalid, or account doesn't exist
                _logger.LogInformation(LoggingEvents.InvalidCredentials, "Invalid Credentials");
                return(await Task.FromResult <ClaimsIdentity>(null));
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Post([FromBody] RegistrationViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var userIdentity = _mapper.Map <AppUser>(model);

                //Create the user
                ILogicUsers lusers = Business.UsersLogic(_userManager);
                var         result = await lusers.RegisterUser(userIdentity, model.Password);

                if (!result.Succeeded)
                {
                    return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState)));
                }

                //Create the customer
                ILogicCustomers lcust = Business.CustomersLogic();
                await lcust.RegisterCustomer(new Customer { IdentityId = userIdentity.Id });

                return(new OkObjectResult("Account created"));
            }
            catch (System.Exception ex)
            {
                _logger.LogError(LoggingEvents.GenericError, ex.Message);
                return(StatusCode(500, ex));
            }
        }