Controllo dell'account utente

Nota

Questa guida alla progettazione è stata creata per Windows 7 e non è stata aggiornata per le versioni più recenti di Windows. Gran parte delle linee guida si applica ancora in linea di principio, ma la presentazione e gli esempi non riflettono le linee guida di progettazione correnti.

Un'esperienza di controllo dell'account utente ben progettata consente di evitare modifiche indesiderate a livello di sistema in modo prevedibile e richiede un lavoro minimo.

Con controllo dell'account utente completamente abilitato, gli amministratori interattivi vengono in genere eseguiti con privilegi utente minimi, ma possono eseguire autonomamente le attività amministrative fornendo il consenso esplicito con l'interfaccia utente di consenso. Tali attività amministrative includono l'installazione di software e driver, la modifica delle impostazioni a livello di sistema, la visualizzazione o la modifica di altri account utente e l'esecuzione di strumenti di amministrazione.

Nello stato con privilegi minimi, gli amministratori vengono definiti amministratori protetti. Nello stato con privilegi elevati vengono definiti amministratori con privilegi elevati. Al contrario, gli utenti Standard non possono elevare i privilegi autonomamente, ma possono chiedere a un amministratore di elevarli usando l'interfaccia utente delle credenziali. L'account amministratore predefinito non richiede l'elevazione dei privilegi.

screenshot del messaggio di sicurezza

Interfaccia utente di consenso, usata per elevare i privilegi amministrativi agli amministratori protetti.

screenshot del messaggio che richiede la password

Interfaccia utente delle credenziali, usata per elevare gli utenti Standard.

Controllo dell'account utente offre i vantaggi seguenti:

  • Riduce il numero di programmi eseguiti con privilegi elevati, contribuendo quindi a impedire agli utenti di modificare accidentalmente le impostazioni di sistema e di impedire a "malware" di ottenere l'accesso a livello di sistema. Quando viene negata l'elevazione dei privilegi, il malware è in grado di influire solo sui dati dell'utente corrente. Senza elevazione dei privilegi, il malware non può apportare modifiche a livello di sistema o influire su altri utenti.
  • Per gli ambienti gestiti, le esperienze UAC ben progettate consentono agli utenti di essere più produttivi quando vengono eseguiti come utenti Standard rimuovendo restrizioni non necessarie.
  • Offre agli utenti Standard la possibilità di chiedere agli amministratori di concedere loro l'autorizzazione per eseguire attività amministrative all'interno della sessione corrente.
  • Per gli ambienti domestici, consente un migliore controllo genitori rispetto alle modifiche a livello di sistema, incluso il software installato.

Gli sviluppatori: Per informazioni sull'implementazione, vedere Riprogettare l'interfaccia utente per la compatibilità con controllo dell'account utente.

In Windows Vista gli amministratori protetti possono scegliere di ricevere una notifica su tutte le modifiche di sistema o nessuna. L'impostazione predefinita di Controllo dell'account utente consiste nel notificare tutte le modifiche, indipendentemente dall'origine. Quando si riceve una notifica, il desktop verrà disattivato e sarà necessario approvare o negare la richiesta nella finestra di dialogo Controllo dell'account utente prima di poter eseguire qualsiasi altra operazione nel computer. L'attenuazione del desktop viene definita desktop sicuro perché altri programmi non possono essere eseguiti mentre è inattiva.

Windows 7 introduce due impostazioni intermedie di Controllo dell'account utente per gli amministratori protetti, oltre ai due di Windows Vista. Il primo consiste nel notificare agli utenti solo quando un programma apporta la modifica, quindi gli amministratori vengono automaticamente elevati quando apportano una modifica. Questa è l'impostazione predefinita di Controllo dell'account utente in Windows 7 e usa anche il desktop protetto.

La seconda impostazione intermedia in Windows 7 è la stessa della prima, ad eccezione del fatto che non usa il desktop protetto.

screenshot di quattro impostazioni di controllo dell'account utente in Windows 7

Windows 7 introduce due impostazioni intermedie di Controllo dell'account utente.

Nota: Le linee guida relative alla scrittura di codice per supportare il controllo dell'account utente vengono presentate in un articolo separato.

Concetti relativi alla progettazione

Obiettivi

Un'esperienza di controllo dell'account utente ben progettata ha gli obiettivi seguenti:

  • Eliminare l'elevazione non necessaria. Gli utenti devono eseguire privilegi elevati solo per eseguire attività che richiedono privilegi amministrativi. Tutte le altre attività devono essere progettate per eliminare la necessità di elevazione. Spesso il software legacy richiede privilegi di amministratore inutilmente scrivendo nelle sezioni del Registro di sistema HKLM o HKCR oppure nelle cartelle Programmi o sistema di Windows.
  • Essere prevedibili. Gli utenti standard devono sapere quali attività richiedono a un amministratore di eseguire o non possono essere eseguite in tutti gli ambienti gestiti. Gli amministratori devono sapere quali attività richiedono l'elevazione dei privilegi. Se non riescono a prevedere con precisione la necessità di elevazione dei privilegi, è più probabile concedere il consenso per le attività amministrative quando non devono farlo.
  • Richiedere un impegno minimo. Le attività che richiedono privilegi amministrativi devono essere progettate per richiedere una singola elevazione. Le attività che richiedono più elevazioni diventano rapidamente noiose.
  • Ripristinare i privilegi minimi. Al termine di un'attività che richiede privilegi amministrativi, il programma deve ripristinare lo stato con privilegi minimi.

Flusso delle attività di elevazione

Quando un'attività richiede l'elevazione dei privilegi, prevede i passaggi seguenti:

  1. Punto di ingresso. Le attività che richiedono l'elevazione immediata quando controllo dell'account utente è completamente abilitato hanno punti di ingresso contrassegnati con lo scudo UAC. In questo caso, gli utenti dovrebbero aspettarsi di visualizzare un'interfaccia utente di elevazione immediatamente dopo aver fatto clic su tali comandi e dovrebbero essere più cauti quando vedono l'interfaccia utente elevazione da attività che non hanno uno scudo.

    screenshot delle icone dello scudo uac e delle relative etichette

    In questo esempio, gli elementi del pannello di controllo dei genitori e degli account utente richiedono l'elevazione dei privilegi.

    Quando controllo dell'account utente è parzialmente abilitato o disattivato completamente, lo scudo UAC viene comunque visualizzato per indicare che l'attività comporta modifiche a livello di sistema e pertanto richiede l'elevazione dei privilegi, anche se l'utente potrebbe non visualizzare l'interfaccia utente di elevazione. La visualizzazione dello scudo UAC per le attività che richiedono l'elevazione dei privilegi mantiene l'interfaccia utente semplice e prevedibile.

  2. Elevazione. Per Gli amministratori protetti, l'attività richiede il consenso tramite l'interfaccia utente di consenso. Per gli utenti Standard, l'attività richiede le credenziali di amministratore usando l'interfaccia utente delle credenziali.

    screenshot di due tipi di elevazione

    Questi esempi mostrano l'interfaccia utente delle credenziali e l'interfaccia utente del consenso.

  3. Processo con privilegi elevati separati. Internamente, viene creato un nuovo processo con privilegi elevati per eseguire l'attività.

  4. Ripristinare il privilegio minimo. Se necessario, ripristinare il privilegio minimo per completare tutti i passaggi che non richiedono l'elevazione dei privilegi.

Si noti che le attività non ricordano gli stati elevati. Ad esempio, se l'utente passa avanti e indietro su un punto di ingresso di elevazione in una procedura guidata, l'utente deve elevare ogni volta.

Modelli di utilizzo

Il controllo dell'account utente ha diversi modelli di utilizzo (in ordine di preferenza):

  1. Lavorare per gli utenti Standard. Progettare la funzionalità per tutti gli utenti limitandone l'ambito all'utente corrente. Limitando le impostazioni all'utente corrente (anziché a livello di sistema), è possibile eliminare completamente la necessità di un'interfaccia utente di elevazione e consentire agli utenti di completare l'attività.

    Non corretto:

    screenshot del messaggio: non si dispone dei privilegi

    In questo esempio, gli utenti di Windows XP devono avere privilegi amministrativi per visualizzare o modificare il fuso orario corrente.

    Corretto:

    schermata della finestra di dialogo data e ora

    In questo esempio, la funzionalità fuso orario è stata riprogettata in Windows 7 e Windows Vista per funzionare per tutti gli utenti.

  2. Disporre di elementi dell'interfaccia utente separati per utenti e amministratori Standard. Separare chiaramente le attività utente standard dalle attività amministrative. Concedere a tutti gli utenti l'accesso a informazioni di sola lettura utili. Identificare chiaramente le attività amministrative con lo scudo UAC.

    immagine dello scudo uac che mostra l'elevazione richiesta

    In questo esempio, l'elemento Pannello di controllo sistema mostra lo stato a tutti gli utenti, ma la modifica delle impostazioni a livello di sistema richiede l'elevazione dei privilegi.

  3. Consentire agli utenti Standard di tentare l'attività e di elevare i privilegi in caso di errore. Se gli utenti Standard possono visualizzare le informazioni e possono apportare alcune modifiche senza elevazione dei privilegi, consentire loro di accedere all'interfaccia utente e di impostarle con privilegi elevati solo se l'attività ha esito negativo. Questo approccio è adatto quando gli utenti Standard hanno accesso limitato, ad esempio con proprietà dei propri file in Esplora risorse. È adatto anche per le impostazioni in Pannello di controllo pagine dell'hub ibrido.

    screenshot dell'accesso negato

    In questo esempio l'utente ha tentato di modificare le proprietà del file di programma ma non ha privilegi sufficienti. L'utente può elevare e riprovare.

  4. Lavorare solo per gli amministratori. Usare questo approccio solo per le funzionalità e i programmi di amministratore. Se una funzionalità è destinata solo agli amministratori (e non dispone di percorsi di spostamento o informazioni di sola lettura utili per gli utenti Standard), è possibile richiedere le credenziali di amministratore nel punto di ingresso prima di visualizzare qualsiasi interfaccia utente. Usare questo approccio per lunghe procedure guidate e flussi di pagine quando tutti i percorsi richiedono privilegi amministrativi.

    Se l'intero programma è solo per gli amministratori, contrassegnarlo per richiedere le credenziali di amministratore per l'avvio. Windows visualizza tali icone di programma con la sovrimpressione dello scudo UAC.

    screenshot del logo di Windows e della sovrimpressione dello scudo uac

    In questo esempio, il programma richiede privilegi amministrativi per l'avvio.

Indicazioni

Icona di schermata UAC

  • Visualizzare i controlli con lo scudo UAC per indicare che l'attività richiede l'elevazione immediata quando controllo dell'account utente è completamente abilitato, anche se controllo dell'account utente non è attualmente completamente abilitato. Se tutti i percorsi di una procedura guidata e di un flusso di pagina richiedono l'elevazione, visualizzare lo scudo UAC nel punto di ingresso dell'attività. L'uso corretto dello scudo UAC consente agli utenti di prevedere quando è necessaria l'elevazione dei privilegi.

  • Se il programma supporta più versioni di Windows, visualizzare lo scudo UAC se almeno una versione richiede l'elevazione. Poiché Windows XP non richiede mai l'elevazione, è consigliabile rimuovere gli schermi UAC per Windows XP se è possibile farlo in modo coerente e senza danneggiare le prestazioni.

  • Non visualizzare lo scudo UAC per le attività che non richiedono l'elevazione dei privilegi nella maggior parte dei contesti. Poiché questo approccio a volte sarà fuorviante, l'approccio preferito consiste nell'usare invece un comando contestuale schermato correttamente.

    screenshot dei file di foto in Esplora finestre

    Poiché il comando Nuova cartella richiede l'elevazione solo quando viene usata nelle cartelle di sistema, viene visualizzata senza uno scudo UAC.

  • Lo scudo UAC può essere visualizzato nei controlli seguenti:

    Pulsanti di comando:

    schermata del pulsante di comando con l'icona dello scudo uac

    Pulsante di comando che richiede l'elevazione immediata.

    Collegamenti ai comandi:

    schermata del collegamento di comando con l'icona dello scudo uac

    Collegamento di comando che richiede l'elevazione immediata.

    Link:

    schermata di modifica del collegamento dell'account con schermata uac

    Collegamento che richiede l'elevazione immediata.

    Menu:

    schermata del menu con schermata uac shield

    Menu a discesa che richiede l'elevazione immediata.

  • Poiché le attività non ricordano gli stati elevati, non modificare lo scudo di Controllo dell'account utente in modo che rifletta lo stato.

  • Visualizzare lo scudo UAC anche se il controllo dell'account utente è stato disattivato o se l'utente usa l'account amministratore predefinito. La visualizzazione coerente dello scudo UAC è più semplice da programmare e fornisce agli utenti informazioni sulla natura dell'attività.

Altitudine

  • Quando possibile, progettare le attività da eseguire dagli utenti Standard senza elevazione dei privilegi. Concedere a tutti gli utenti l'accesso a informazioni di sola lettura utili.

  • Elevare in base a ogni attività, non in base a ogni impostazione. Non combinare le impostazioni utente standard con le impostazioni amministrative in una singola pagina o finestra di dialogo. Ad esempio, se gli utenti Standard possono modificare alcune impostazioni ma non tutte, suddividere tali impostazioni come una superficie dell'interfaccia utente separata.

    Non corretto:

    screenshot della finestra di dialogo delle impostazioni di data e ora

    In questo esempio, le impostazioni utente standard vengono mescolate in modo non corretto con le impostazioni amministrative.

    Corretto:

    schermata della stessa finestra di dialogo senza schermate uac

    In questo esempio, le impostazioni per la modifica della data e dell'ora si trovano in una finestra di dialogo separata, disponibile solo per gli amministratori. Le impostazioni del fuso orario sono disponibili per gli utenti Standard e non vengono combinate con le impostazioni amministrative.

  • Non considerare la necessità di elevare i privilegi quando si determina se un controllo deve essere visualizzato o disabilitato. Motivo:

    • Negli ambienti non gestiti si supponga che gli utenti Standard possano elevare privilegi richiedendo un amministratore. La disabilitazione dei controlli che richiedono l'elevazione dei privilegi impedisce agli utenti di disporre di privilegi elevati per gli amministratori.
    • Negli ambienti gestiti si supponga che gli utenti Standard non possano elevare affatto i privilegi. La rimozione di controlli che richiedono l'elevazione dei privilegi impedisce agli utenti di sapere quando smettere di guardare.
  • Per eliminare l'elevazione non necessaria:

    • Se un'attività potrebbe richiedere l'elevazione dei privilegi, elevare il più tardi possibile. Se un'attività richiede una conferma, visualizzare l'interfaccia utente di elevazione solo dopo che l'utente ha confermato. Se un'attività richiede sempre l'elevazione, elevare al suo punto di ingresso.
    • Dopo l'elevazione elevata, rimanere elevati fino a quando i privilegi elevati non sono più necessari. Gli utenti non devono elevare più volte per eseguire una singola attività.
    • Se gli utenti devono eseguire privilegi elevati per apportare una modifica, ma non apportare modifiche, lasciare abilitati i pulsanti di commit positivi ma gestire il commit come annullamento. In questo modo, gli utenti devono elevare solo per chiudere una finestra.
    • Non corretto:
    • screenshot della finestra con un solo pulsante attivo
    • In questo esempio il pulsante Salva modifiche è disabilitato per evitare un'elevazione non necessaria, ma diventa abilitata quando gli utenti modificano la selezione. Tuttavia, il pulsante commit disabilitato fa sembrare che gli utenti non abbiano una scelta.
  • Non visualizzare un messaggio di errore quando le attività hanno esito negativo perché gli utenti hanno scelto di non elevare i privilegi. Si supponga che gli utenti abbiano scelto intenzionalmente di non procedere, quindi non considerano questa situazione come un errore.

    Non corretto:

    screenshot del messaggio: non è possibile eseguire il ripristino di fabrikam

    In questo esempio Fabrikam Restore restituisce erroneamente un messaggio di errore quando l'utente decide di non elevare i privilegi.

  • Non visualizzare avvisi per spiegare che gli utenti potrebbero dover elevare i propri privilegi per eseguire attività. Consentire agli utenti di scoprire questo fatto autonomamente.

  • Visualizzare lo scudo uAC e l'interfaccia utente di elevazione in base alla tabella seguente:

    Oggetto Circostanza Dove inserire lo scudo UAC Quando elevare
    Programma
    L'intero programma è solo per gli amministratori.
    screenshot del logo di Windows e della sovrimpressione dello scudo uac
    Sovrimpressione dello scudo UAC sull'icona del programma.
    Visualizza l'interfaccia utente di elevazione dei privilegi all'avvio.
    Comando
    L'intero comando è solo per gli amministratori.
    schermata del collegamento cambia account e schermata uac
    Schermata UAC sul pulsante di comando o sul collegamento.
    Visualizzare l'interfaccia utente di elevazione dei privilegi quando si fa clic sul pulsante di comando o sul collegamento, ma dopo eventuali conferme.
    Comando
    Il comando visualizza informazioni utili di sola lettura appropriate per tutti gli utenti, ma le modifiche richiedono privilegi amministrativi.
    screenshot del collegamento alle impostazioni di modifica e dello scudo uac
    Schermata UAC sul pulsante di comando o sul collegamento per apportare modifiche.
    Visualizzare l'interfaccia utente di elevazione dei privilegi quando si fa clic sul pulsante di comando, ma dopo eventuali conferme.
    Comando
    Gli utenti standard possono visualizzare le informazioni ed eventualmente apportare alcune modifiche senza elevazione dei privilegi. consentire agli utenti standard di tentare e di elevare i privilegi in caso di errore.
    screenshot dell'errore con l'icona uac sul pulsante riprova
    Non visualizzare lo scudo UAC per il comando, ma mostrarlo per il punto di ingresso di elevazione se il comando ha esito negativo.
    Visualizzare l'interfaccia utente di elevazione dei privilegi quando l'utente ritenta il comando.
    Passaggio attività
    Tutti i passaggi successivi richiedono l'elevazione dei privilegi.
    schermata del pulsante di comando successivo con schermata uac
    Schermata UAC sul pulsante Avanti (o equivalente).
    Visualizza l'interfaccia utente di elevazione dei privilegi quando si fa clic su Avanti o su un altro pulsante di commit.
    Passaggio attività
    Alcuni rami richiedono l'elevazione dei privilegi.
    schermata del collegamento di comando con schermata uac
    Schermata UAC sui collegamenti ai comandi che richiedono l'elevazione dei privilegi.
    Visualizzare l'interfaccia utente di elevazione dei privilegi quando si fa clic su collegamenti di comando con schermata UAC.

Interfaccia utente di elevazione

  • Se l'utente fornisce un account non valido (nome o password) o non dispone di privilegi di amministratore, è sufficiente riprodurre nuovamente l'interfaccia utente delle credenziali. Non visualizzare un messaggio di errore.
  • Se l'utente annulla l'interfaccia utente delle credenziali, restituire l'utente all'interfaccia utente originale. Non visualizzare un messaggio di errore.
  • Se il controllo dell'account utente è stato disattivato e un utente Standard tenta di eseguire un'attività che richiede l'elevazione dei privilegi, specificare un messaggio di errore che indica che questa attività richiede privilegi di amministratore. Per eseguire questa attività, è necessario accedere usando un account amministratore."

screenshot dell'attività richiede un messaggio di privilegi

In questo esempio, Controllo account utente è stato disattivato in modo che un messaggio di errore spieghi che l'utente deve usare un account amministratore.

Procedure guidate

  • Non elevare più volte. Una volta che una procedura guidata è elevata, deve rimanere elevata.
  • Se l'attività viene eseguita all'interno della procedura guidata, inserire uno scudo di Controllo dell'account utente sul pulsante "Avanti" della pagina Commit (che deve essere assegnato un'etichetta più specifica). Quando l'utente esegue il commit:
    • Se la pagina successiva è una pagina Stato, passare a tale pagina e visualizzare modally l'interfaccia utente di elevazione. Dopo aver completato l'elevazione, eseguire l'attività.
    • Se la pagina successiva è una pagina Completamento, passare a tale pagina (ma sostituire temporaneamente il relativo contenuto con "In attesa di autorizzazione...") e visualizzare in modo modificato l'interfaccia utente di elevazione. Dopo aver completato l'elevazione, eseguire l'attività e quindi visualizzare il contenuto della pagina Completamento.
    • Se l'utente annulla l'interfaccia utente di elevazione dei privilegi, tornare alla pagina Commit. In questo modo l'utente può riprovare.
  • Se l'attività viene eseguita al termine della procedura guidata, inserire uno scudo di Controllo dell'account utente sul pulsante "Fine" della pagina Commit (che deve essere assegnato un'etichetta più specifica). Quando l'utente esegue il commit:
    • Rimanere nella pagina Commit e visualizzare modally l'interfaccia utente di elevazione. Al termine dell'elevazione, chiudere la procedura guidata.
    • Se l'utente annulla l'interfaccia utente di elevazione dei privilegi, tornare alla pagina Commit. In questo modo l'utente può riprovare.
  • Per le lunghe procedure guidate destinate solo agli amministratori, è possibile richiedere le credenziali di amministratore nel punto di ingresso prima di visualizzare qualsiasi interfaccia utente.

Testo

  • Non usare i puntini di sospensione solo perché un comando richiede l'elevazione dei privilegi. La necessità di elevare è indicata con lo scudo UAC.

Documentazione

Quando si fa riferimento al controllo dell'account utente:

  • Fare riferimento alla funzionalità Controllo account utente (in prima menzione) o controllo dell'account utente (in caso di menzione successiva), non Account utente con privilegi minimi o LUA.
  • Fare riferimento a utenti non amministratori come utenti Standard.
  • Fare riferimento agli amministratori di computer predefiniti come amministratori predefiniti.

Nella documentazione dell'utente:

  • Fare riferimento all'atto di fornire il consenso per eseguire un'attività amministrativa come concessione dell'autorizzazione.

Nella programmazione e in altre documentazioni tecniche:

  • Fare riferimento all'atto di dare il consenso per eseguire un'attività amministrativa come elevazione dei privilegi.
  • Nel contesto di Controllo dell'account utente, fare riferimento agli amministratori come amministratori protetti quando non sono elevati e amministratori con privilegi elevati dopo l'elevazione dei privilegi.
  • Fare riferimento alla finestra di dialogo usata per immettere le password come interfaccia utente delle credenziali. Fare riferimento alla finestra di dialogo usata per fornire il consenso come interfaccia utente di consenso. Fare riferimento a entrambi in genere come interfaccia utente di elevazione.