Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 36267|Risposta: 3

[WinForm] I programmi C# eseguiti con privilegi amministratori

[Copiato link]
Pubblicato su 09/10/2016 09:14:38 | | | |
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".







Precedente:{"L'elemento '_id' non corrisponde a nessun campo o proprietà di classe."}
Prossimo:.NET/C# 4 modi per implementare query MongoDB e query fuzzy [con codice sorgente]
 Padrone di casa| Pubblicato su 09/10/2016 09:15:27 |
Determina se il programma è in esecuzione come amministratore
Devono essere aggiunti i namespace:
usando System.Security.Principal;


 Padrone di casa| Pubblicato su 26/01/2021 09:59:52 |
C# determina se un programma è in esecuzione come amministratore
https://www.itsvse.com/thread-3004-1-1.html
 Padrone di casa| Pubblicato su 13/10/2025 09:18:33 |
Le applicazioni .NET Core vengono eseguite come amministratori su sistemi Windows, il codice è il seguente:


Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com