Esempio n. 1
0
        public override async Task <UserDto> Create(CreateUserDto input)
        {
            CheckCreatePermission();

            byte[] ba = Encoding.Default.GetBytes(String.Format("scrt-key-{0}", input.UserName));

            var    hexArrayString = ba.Select(prop => prop.ToString("X2")).ToArray();
            string hexString      = string.Join("", hexArrayString);

            input.Password = StringCipher.OpenSSLDecrypt(input.Password, hexString) ?? input.Password;

            var user = ObjectMapper.Map <User>(input);

            user.TenantId         = input.TenantId ?? AbpSession.TenantId;
            user.Password         = _passwordHasher.HashPassword(user, input.Password);
            user.IsEmailConfirmed = true;

            CheckErrors(await _userManager.CreateAsync(user));

            if (input.RoleNames != null)
            {
                CheckErrors(await _userManager.SetRoles(user, input.RoleNames));
            }

            CurrentUnitOfWork.SaveChanges();

            return(MapToEntityDto(user));
        }
        private async Task <AbpLoginResult <Tenant, User> > GetLoginResultAsync(string usernameOrEmailAddress, string password, string tenancyName)
        {
            byte[] ba = Encoding.Default.GetBytes(String.Format("scrt-key-{0}", usernameOrEmailAddress));

            var    hexArrayString = ba.Select(prop => prop.ToString("X2")).ToArray();
            string hexString      = string.Join("", hexArrayString);

            password = StringCipher.OpenSSLDecrypt(password, hexString) ?? password;

            var loginResult = await _logInManager.LoginAsync(usernameOrEmailAddress, password, tenancyName);

            switch (loginResult.Result)
            {
            case AbpLoginResultType.Success:
                return(loginResult);

            default:
                throw _abpLoginResultTypeHelper.CreateExceptionForFailedLoginAttempt(loginResult.Result, usernameOrEmailAddress, tenancyName);
            }
        }