public async Task LoginTest()
        {
            LoginResultViewmodel result = await _authenticationLogic.Login(new TestLogin().Login);

            Assert.AreNotEqual(new LoginResultViewmodel(), result);
            Assert.NotNull(result.RefreshToken);
            Assert.NotNull(result.Jwt);
        }
Пример #2
0
        public async Task <LoginResultViewmodel> Authenticate(string username, string password)
        {
            var user = await userManager.FindByNameAsync(username);

            // Return null if user not found.
            if (user == null)
            {
                return(null);
            }

            // Authenticate the user.
            var signInResult = await signInManager.CheckPasswordSignInAsync(user, password, lockoutOnFailure : false);

            if (!signInResult.Succeeded)
            {
                return(null);
            }
            var roles = await userManager.GetRolesAsync(user);

            var userRole = SystemRoles.Admin;

            foreach (var role in roles)
            {
                switch (role)
                {
                case nameof(SystemRoles.Company):
                    userRole = SystemRoles.Company;
                    break;

                case nameof(SystemRoles.Client):
                    userRole = SystemRoles.Client;
                    break;
                }
                ;
            }

            var result = new LoginResultViewmodel
            {
                UserId   = user.Id.ToString(),
                Result   = signInResult,
                Role     = userRole,
                Username = user.Email
            };

            return(result);

            //return token;
        }
        public async Task <ActionResult> Login([FromBody] Login login)
        {
            try
            {
                LoginResultViewmodel result = await _authorizationLogic.Login(login);

                return(Ok(result));
            }
            catch (UnauthorizedAccessException)
            {
                return(Unauthorized());
            }
            catch (DisabledUserException)
            {
                return(Forbid());
            }
            catch (Exception e)
            {
                _logLogic.Log(e);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }