Domanda

Sto creando un programma che verrà installato utilizzando il progetto di installazione .net.Il programma scrive i file delle impostazioni nella sua directory in Program Files dir.Ritiene che esistano alcune impostazioni di Active Directory che impediranno all'applicazione di accedere direttamente a quella directory se un utente limitato esegue il programma.È possibile modificare le impostazioni per la cartella dell'applicazione durante l'installazione in modo che questo non costituisca un problema?

È stato utile?

Soluzione

Scrivere nella cartella Programmi è davvero una pessima idea, dovresti presumere che questa posizione sia "di sola lettura" una volta installata.

Il salvataggio delle impostazioni utente in Programmi causa problemi se più di due persone utilizzano il computer contemporaneamente (ad es.Servizi Terminal) quali impostazioni devono essere salvate, vuoi che gli altri utenti conoscano le "tue" impostazioni?Cosa succede se il tuo programma scrive le impostazioni nel file come utente A, ma l'utente B non può modificare il file?L'utente B può avere accesso alla directory, ma non leggere/eliminare il file delle preferenze poiché questo è di proprietà dell'utente A.

I programmi Win9x legacy spesso scrivono nella cartella dei file di programma, Windows Vista in realtà esegue alcuni trucchetti per far funzionare questi programmi.Quando il tuo programma scrive un file, Vista in realtà lo inserisce da qualche altra parte accessibile solo a quell'utente.Lo stesso viene fatto per le scritture del registro su HKLM (o almeno così ho scoperto dopo ore di debug...) e Server 2008 fa la stessa cosa.

Se hai bisogno di salvare le impostazioni dell'utente, l'alternativa migliore sarebbe salvare le impostazioni nella cartella Dati dell'applicazione (Variabile d'ambiente %APPDATA%)

Se le impostazioni riguardano l'intero sistema, l'utente amministrativo dovrà impostarle dopo l'installazione o alla prima esecuzione e non dovrebbero poter essere sovrascritte da utenti con limitazioni.

Quindi, per rispondere alla tua domanda: SÌ, c'è un modo per fare ciò che hai chiesto.Ma è una cattiva idea, non è sicura e probabilmente causerà problemi a lungo termine.

Altri suggerimenti

È possibile scrivere una classe di installazione personalizzata che possa modificare le autorizzazioni di sicurezza della cartella.Ciò presuppone che l'installazione venga eseguita da un utente che dispone dell'autorizzazione per modificare la sicurezza di file/directory.

L'opzione migliore è non scrivere affatto nelle directory sotto Programmi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top