2011-07-28 3 views
7

Sto cercando il modo corretto per consentire l'elevazione dei privilegi per le operazioni selezionate.Come implementare correttamente "come amministratore" o "Esegui come amministratore" nell'applicazione .NET per le operazioni selezionate?

Qualcosa di simile, molti prodotti offrono.

Per esempio se si dispone di UAC acceso e si utilizza Total Commander (in esecuzione con privilegi di base) durante la navigazione delle cartelle con restrizioni otterrete:

enter image description here

Se si preme As Administrator otterrete utente comune Finestra di dialogo Controllo accesso che chiede se si desidera concedere le autorizzazioni necessarie al processo. È qualcosa di simile possibile nell'applicazione .NET (anche con supporto Win32)?

  1. Come dovrebbe essere implementata correttamente tale funzionalità?
  2. Devo eseguire un processo esterno per ottenere privilegi elevati solo per le funzionalità selezionate?

Non sto cercando una soluzione che richiederà l'esecuzione del processo principale come amministratore.

+1

Il token (standard o admin) viene assegnato all'avvio del processo, quindi è necessario un processo separato. È una procedura avviata o un server COM out-of-proc. –

risposta

4

È necessario calcolare la funzionalità dell'operazione di destinazione in un componente separato che verrà eseguito in alto. Questo può essere un eseguibile che richiede l'elevazione o un componente COM (che potrebbe presumibilmente essere un wrapper COM per un componente .NET). I dettagli sono disponibili al http://msdn.microsoft.com/en-us/library/bb756990.aspx, con il When to Add the Shield Icon to Your Application's User Interface particolarmente pertinente.

+0

Se ricordo correttamente, in un'applicazione .Net, non è possibile utilizzare un componente .Net come oggetto com, anche se è esposto a COM. –