Ejemplo n.º 1
0
        /// <summary>
        /// Зарегистрировать.
        /// </summary>
        /// <param name="input">Ввод.</param>
        /// <returns>Задача с зарегистрированным пользователем.</returns>
        public async Task <HostBasePartAuthUser> Register(ModAuthBaseJobRegisterInput input)
        {
            HostBasePartAuthUser result;

            var data = new DataEntityObjectUser
            {
                UserName = input.DataUserName,
                Email    = input.DataEmail,
                FullName = input.DataFullName
            };

            var userManager = input.UserManager;

            var identityResult = await userManager.CreateAsync(data, input.DataPassword)
                                 .CoreBaseExtTaskWithCurrentCulture(false);

            if (identityResult.Succeeded)
            {
                result = await data.HostBasePartAuthExtCreateUser(userManager)
                         .CoreBaseExtTaskWithCurrentCulture(false);
            }
            else
            {
                throw new ModAuthBaseJobRegisterException(identityResult.Errors);
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Хост. Основа. Часть "Auth". Расширение. Создать. Пользователя.
        /// </summary>
        /// <param name="data">Данные.</param>
        /// <param name="userManager">Менеджер пользователя.</param>
        /// <returns>Пользователь хоста.</returns>
        public static async Task <HostBasePartAuthUser> HostBasePartAuthExtCreateUser(
            this DataEntityObjectUser data,
            UserManager <DataEntityObjectUser> userManager
            )
        {
            var roles = await userManager.GetRolesAsync(data)
                        .CoreBaseExtTaskWithCurrentCulture(false);

            return(data.HostBasePartAuthExtCreateUser(roles));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Мод "Auth". Основа. Расширение. Создать. Вывод от задания на вход в систему при помощи JWT.
        /// </summary>
        /// <param name="data">Данные.</param>
        /// <param name="userManager">Менеджер пользователя.</param>
        /// <param name="jwtService">Сервис JWT.</param>
        /// <returns></returns>
        public static async Task <ModAuthBaseCommonJobLoginJwtOutput> ModAuthBaseExtCreateHostBasePartAuthJobLoginJwtOutput(
            this DataEntityObjectUser data,
            UserManager <DataEntityObjectUser> userManager,
            ICoreBaseAuthTypeJwtService jwtService
            )
        {
            var result = new ModAuthBaseCommonJobLoginJwtOutput
            {
                CurrentUser = await data.HostBasePartAuthExtCreateUser(userManager)
                              .CoreBaseExtTaskWithCurrentCulture(false)
            };

            var claims = result.CurrentUser.HostBasePartAuthExtCreateUserClaims();

            var userId = data.Id.ToString();

            result.AccessToken = jwtService.CreateAccessToken(userId, claims);

            result.RefreshToken = jwtService.CreateRefreshToken(userId);

            return(result);
        }