private void Deserialize() { string path = $"{AppDomain.CurrentDomain.BaseDirectory}impersonations.json"; if (!File.Exists(path)) { throw new InfrastructureException("Can't find impersonations.json file"); } _impersonationModel = JsonSerializer.Deserialize <ImpersonationModel>(File.ReadAllText(path)); }
public void Impersonate([FromBody] ImpersonationModel impersonationModel) { if (string.IsNullOrWhiteSpace(impersonationModel.UserName)) { throw new ClientException("Impersonated user name must be non-empty string."); } if (userInfo is IImpersonationUserInfo impersonationUser && impersonationUser.IsImpersonated) { throw new UserException("Can't impersonate, impersonation already active."); } impersonationContext.ValidateImpersonationPermissions(impersonationModel.UserName); impersonationService.SetImpersonation(userInfo, impersonationModel.UserName); }