Ejemplo n.º 1
0
        public async Task <ControllerResponse> LogIn([FromBody] UserToLogInDto userDto)
        {
            if (!AuthorisationValidator.ValidateUserToLogIn(userDto))
            {
                return(ControllerResponse.Warning(
                           "Данные не введены полностью. Уточните данные запроса и повторите попытку"));
            }

            var user   = _authorizationServices.LogIn(userDto.Login, userDto.Password.GetPasswordHash());
            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            };
            var id        = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal = new ClaimsPrincipal(id);
            await HttpContext.SignInAsync(principal);

            return(ControllerResponse.Ok());
        }
Ejemplo n.º 2
0
        public async Task <ControllerResponse> SignInUser([FromBody] UserToSignInDto userDto)
        {
            if (!AuthorisationValidator.ValidateUserToSignIn(userDto))
            {
                return(ControllerResponse.Warning(
                           "Введенные данные некорректны, введите все данные и повторите запрос"));
            }

            var user = userDto.IsDoctor
                ? _authorizationServices.SignInDoctor(userDto.Name, userDto.Login, userDto.Password.GetPasswordHash())
                : _authorizationServices.SignInUser(userDto.Name, userDto.Login, userDto.Password.GetPasswordHash());

            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            };
            var id        = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal = new ClaimsPrincipal(id);
            await HttpContext.SignInAsync(principal);

            return(ControllerResponse.Ok());
        }