Exemplo n.º 1
0
        public IActionResult ImpersonateLink([FromBody] ImpersonateRequest request)
        {
            var username = (request.Username ?? "").ToLower();

            if (string.IsNullOrEmpty(username))
            {
                return(BadRequest());
            }

            var identity = new ClaimsIdentity();

            identity.AddClaim(new Claim(identity.NameClaimType, username));

            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Guid.Parse(config.SymmetricKey).ToByteArray();
            var signingKey      = new SymmetricSecurityKey(key);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = identity,
                Expires = DateTime.Now.AddMinutes(20),
                Issuer  = "Hexamer",
                //Lifetime = new Lifetime(DateTime.Now, DateTime.Now.Add(scadenza)),
                SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256),
            };
            var token        = tokenHandler.CreateToken(tokenDescriptor);
            var encodedToken = tokenHandler.WriteToken(token);

            var url = $"{Request.Scheme}://{Request.Host}/api/Admin/Impersonate?token=" + WebUtility.UrlEncode(encodedToken);

            return(Ok(url));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> ToggleBlock([FromBody] ImpersonateRequest request)
        {
            var username = (request.Username ?? "").ToLower();

            if (string.IsNullOrEmpty(username))
            {
                return(BadRequest());
            }

            var result = await userRepository.ToggleBlock(username);

            return(Ok(result));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Impersonate([FromBody] ImpersonateRequest request)
        {
            var username = (request.Username ?? "").ToLower();

            if (string.IsNullOrEmpty(username))
            {
                return(BadRequest());
            }

            await SignIn(username);

            return(Ok());
        }