#167 - Eseguire un'applicazione per il .NET Framework con privilegi amministrativi
di Cristian Civera, in .NET Framework, 26 febbraio 2010
Le applicazioni che si realizzano mediante Windows Form o Windows Presentation Foundation sono di fatto eseguibili che una volta avviati creano un loro processo e thread per il loro funzionamento. Quando si avvia un processo questo assume lo stesso token di origine dell'utente che lo ha creato.
Alcune applicazioni (come setup ecc) richiedono però di essere avviate con privilegi amministrativi e sebbene l'utente di Windows Vista o Windows Seven sia solitamente un amministratore , non è sufficiente per avere libero accesso. Lo User Account Control, che normalmente è attivo, limita comunque il processo e l'accesso alle risorse.
Occorre quindi assicurarsi che il processo venga eseguito come amministratore con pieni privilegi. Per farlo basta inserire un file di nome app.manifest all'interno del progetto di Visual Studio (solitamente sotto la cartella Properties) e indicare il livello a requireAdministrator, come nel seguente snippet.
<?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity version="1.0.0.0" name="MyApplication.app" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> </asmv1:assembly>
Normalmente l'attributo level è impostato su asInvoker che determina il comportamento descritto inizialmente. Ricompilando si troverà nella cartella di output il file .exe e un nuovo file .manifest che indica al sistema operativo la richiesta di avviare il processo come amministratore. Avviando l'eseguibile verrà chiesto tramite l'UAC la conferma per dare tale diritto.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
-
#175 - Visualizzare gli errori dei WCF Data Services
-
Open Data Protocol e WCF Data Services
-
#145 - Eseguire un servizio WCF con privilegi minimi
-
#195 - Abilitare il supporto a JSONP con WCF 4.0
-
Multithreading e parallel computing nel .NET Framework 4.0
-
#139 - Invocare servizi in asincrono con WCF
-
#169 - Sfruttare msbuild per differenziare il config
-
MetadataDiffViewer: aggiornato al .NET Framework 4.0, Silverlight 4.0 e Sharepoint 2010
-
Real Code Day 4: Accesso ai dati con Entity Framework
-
#190 - Utilizzare il metodo SetModifiedProperty per aggiornare solo alcune proprietà di una entity
-
#998 - Effettuare chiamate ad un controller tramite AJAX in ASP.NET MVC
-
Le problematiche più comuni di un'architettura M-V-VM con WPF

Commenti
mi piace
non mi piace
Facebook
Twitter










