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)); }
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)); }
public async Task <IActionResult> Impersonate([FromBody] ImpersonateRequest request) { var username = (request.Username ?? "").ToLower(); if (string.IsNullOrEmpty(username)) { return(BadRequest()); } await SignIn(username); return(Ok()); }