2009-12-21 4 views

risposta

-1

Secondo MSDN

"processi a bassa integrità possono scrivere e creare sottocartelle PROFILO% USER% \ AppData \ LocalLow"

Non penso che ci sia un modo per evitare di codificare le ultime due cartelle.

2

Secondo MSDN

In modalità protetta, le estensioni possono scrivere i file in una cartella sotto la cartella UserProfile dell'utente , tipicamente % userprofile% \ AppData \ LocalLow. Utilizzare la funzione SHGetKnownFolderPath con il flag FOLDERID_LocalAppDataLow su ottenere il nome della cartella espansa.

SHGetKnownFolderPath(FOLDERID_LocalAppDataLow, 0, 
    NULL, szPath, ARRAYSIZE(szPath)); 
+5

Che ottiene l'app locale ma non la temperatura bassa ... –

+0

Mentre questa non è una risposta diretta alla tua domanda, sembra essere l'unica cartella sicura che puoi ottenere senza il percorso hardcoding. Lo userei e crearei la cartella temporanea lì. (Naturalmente questo ti mette più responsabilità nel gestire l'eventuale cancellazione dei file). – Danra

4

La "Finding Low Integrity Write Locations" section dell ' "Intesa e lavorare in modalità protetta di Internet Explorer" articolo include i seguenti bocconcino:

Nota modalità protetta modifica le variabili di ambiente di IE. Di conseguenza, la funzione GetTempPath() restituisce% Temp% \ Low quando viene chiamato mentre la modalità protetta è attiva.

+0

Credo che questa sia solo una cosa di IE ... – Anders

1

Se si sta cercando una directory temporanea in cui scrivere, è possibile scorrere le directory all'interno della directory %temp% e provare a scrivere su ciascuna.

Se UAC è disabilitato, . dovrebbe essere il primo. In caso contrario, .\Low dovrebbe essere l'unico.

+0

È interessante, forse il sistema operativo si prende cura di darti il ​​percorso Temp \ Low nella variabile% temp% environmnt, quindi GetTempPath() restituisce il percorso corretto? Non l'ho provato Tuttavia, questo * non * è correlato direttamente al controllo dell'account utente. Il controllo dell'account utente impedisce di eseguire sempre con un token ad alta integrità. Tuttavia, anche quando UAC è disattivato, è possibile creare processi con bassa integrità. – Danra