Boa tarde pessoal,
estou tendo um problema no momento em que tento alterar a connection string em tempo de projeto no meu sistema.
Isto acontece no momento em que altero minha connection string em tempo de projeto, para que em meu cliente eu possa setar o banco de dados de acordo com um xml de configuração do meu sistema que contem a connection string do banco. Em minha maquina de desenvolvimento
não tenho este tipo de problema, este problema só acontece quando executo o sistema na maquina do meu cliente.
Erro :
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation. at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType
type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) at ...
Pesquisei como resolver e não estou conseguindo solucionar, porque pelo que li, este problema é porque nao tenho permissao de alterar o arquivo
na maquina do cliente. tentei usar este codigo abaixo mas nao esta dando certo.
codigo .:
//Set security for EveryOne Group
SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
IdentityReference userIdentity = sid.Translate(typeof(NTAccount));
var AccessRule_AllowEveryOne = new FileSystemAccessRule(userIdentity, FileSystemRights.FullControl, AccessControlType.Allow);
var securityDescriptor = new FileSecurity();
securityDescriptor.SetAccessRule(AccessRule_AllowEveryOne);
File.SetAccessControl("SistemaCTe.exe.config", securityDescriptor);
// Alterando a connectionstring do app.Config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["BDNovoAtualizadoEntities"].ConnectionString = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=Devart.Data.PostgreSql;provider connection string= " + Conexao;
config.Save(ConfigurationSaveMode.Full);
// ler novamente a seção do HD
ConfigurationManager.RefreshSection("connectionStrings");
Por favor se alguem puder me dar uma luz, serei muito grato.