Esempio n. 1
0
        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);
        }