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
I più letti di oggi
- Finalmente anche Silverlight 4.0 è RTW!
- Nuovi controlli nel Silverlight for Windows Phone Toolkit di novembre 2010
- Visual Studio 2019 sarà disponibile a partire dal 2 Aprile
- .NET Alerts Software Development Kit
- Microsoft Security Bulletin MS03-007
- VS 2005 beta 2 dal 25 Aprile in Europa
- Introduzione a Visual Studio Online
- Sfruttare le dipendenze con il model binding di ASP.NET Web Forms
- Documentare ASP.NET Web API con Swagger
- Realizzare un contatore di click