Eseguire un'applicazione per il .NET Framework con privilegi amministrativi

di Cristian Civera, in .NET Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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