In Vista e Windows 7 e successivi, è stato aggiunto un meccanismo di sicurezza chiamato UAC (User Account Control) e, se l'UAC viene attivato, anche se l'utente accede con i privilegi amministratore, le sue applicazioni non possono scrivere nella directory di sistema, nel registro del sistema e in altre impostazioni che potrebbero influire di default sul normale funzionamento del sistema. Questo meccanismo migliora notevolmente la sicurezza del sistema, ma per gli sviluppatori di applicazioni non possiamo obbligare gli utenti a disattivare l'UAC, ma a volte l'applicazione che sviluppiamo deve funzionare come un amministratore, come ottenere tale funzione? Ecco come un programma C# implementa il fatto che l'utente richieda di eseguire i privilegi dell'amministratore. In questo esempio, il programma WinForm dimostra che un nuovo progetto viene generato e modificato di conseguenza: Metodo 1: Inizia tramite System.Diagnostics.Process.Start(): Metodo di implementazione: Modifica il file del programma generato di default e il codice modificato è il seguente: Poiché il codice è già stato commentato, non entrerà nei dettagli; Effetto: Poiché viene avviato chiamando la chiamata esterna di System.Diagnostics.Process.Start(), quando viene eseguito direttamente tramite VS, non chiederà a VS di aver bisogno di diritti di amministratore, solo il programma stesso ha bisogno di diritti di amministratore, che è diverso dal programma che genera l'applicazione. Questa è la differenza principale rispetto all'implementazione del metodo 2. Metodo 2: Aggiungendo un file manifest dell'applicazione: Sul progetto Aggiungi nuovo elemento, seleziona File manifesto applicazione e clicca sul pulsante Aggiungi Una volta aggiunto, il file app.manifest viene aperto di default, che sarà: Modificato in: Poi apri le Proprietà del Progetto e modifica il Manifest nella scheda Risorse nella scheda Applicazioni nel nuovo app.manifest. Ricostruisci il progetto e, quando riapri il programma, ti verrà chiesto di eseguire con i privilegi amministratore. Nota che se inizi a fare il debug in VS, ti verrà richiesto che questo compito richiede privilegi elevati all'applicazione. Come mostrato di seguito: Seleziona Riavvia con altre credenziali per farlo. Metodo 3: Modificare direttamente le proprietà del file di programma Clicca con il tasto destro sul file del programma nella scheda Compatibilità nella finestra di dialogo Proprietà che compare Controlla "Esegui questo programma come amministratore".
|