/// <summary>
        /// Метод авторизации пользователя
        /// </summary>
        /// <param name="loginUser">Объект данных из формы ввода</param>
        /// <returns>Объект ответа</returns>
        public async Task <DtoInterlayerIdentity> LoginAsync(DtoFormLoginUser loginUser)
        {
            var user = await _appUsers.GetAppUserByEmailAsync(loginUser.Mail);

            if (user == null)
            {
                return new DtoInterlayerIdentity
                       {
                           IsSuccess = false,
                           Reason    = "Такий емеіл не зараєстровано"
                       }
            }
            ;

            if (user != null && user.Password != loginUser.Password)
            {
                return new DtoInterlayerIdentity
                       {
                           IsSuccess = false,
                           Reason    = "Введено не вірний пароль"
                       }
            }
            ;

            else
            {
                CreateSession(user);

                return(new DtoInterlayerIdentity
                {
                    IsSuccess = true,
                    Reason = "{0}, вас успішно авторизовано!"
                });
            }
        }
Exemple #2
0
        /// <summary>
        /// Обработчик авторизации пользователя
        /// </summary>
        /// <returns>В случае успеха переадресовывает в рабочую область</returns>
        public async Task <IActionResult> OnPostLogin(DtoFormLoginUser loginUser)
        {
            var answ = await _authManager.LoginAsync(loginUser);

            if (!answ.IsSuccess)
            {
                TempData["LoginNotification"] = answ.Reason;
                IdentityState = LOGIN;
                return(Page());
            }
            else
            {
                TempData["Notification"] = string.Format
                                           (
                    format: answ.Reason,
                    _userSession.User.Name
                                           );
                return(RedirectToPage("/Index", new
                {
                    area = "Workspace",
                    hasNotify = true
                }));
            }
        }