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.

screen shot of 'allow program' security message

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

screen shot of message asking for 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 a due da 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.

screen shot of four uac settings 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 o programmi o Windows cartelle di sistema.
  • 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 dei 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.

    screen shot of uac shield icons and their labels

    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.

    screen shot of two types of elevation

    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:

    screen shot of message: you do not have privilege

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

    Corretto:

    screen shot of date and time dialog box

    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.

    graphic of uac shield showing elevation required

    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 Windows Explorer. È adatto anche per le impostazioni in Pannello di controllo pagine dell'hub ibrido.

    screen shot of access is denied message

    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.

    screen shot of windows logo and uac shield overlay

    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 schermo dell'interfaccia utente per le attività che non richiedono l'elevazione nella maggior parte dei contesti. Poiché questo approccio a volte sarà fuorviante, l'approccio preferito consiste nell'usare un comando contestuale schermato correttamente.

    screen shot of photo files in windows explorer

    Poiché il comando Nuova cartella richiede l'elevazione solo quando viene usato nelle cartelle di sistema, viene visualizzato senza uno schermo dell'interfaccia utente.

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

    Pulsanti di comando:

    screen shot of command button with uac shield icon

    Pulsante di comando che richiede l'elevazione immediata.

    Collegamenti ai comandi:

    screen shot of command link with uac shield icon

    Collegamento di comando che richiede l'elevazione immediata.

    Link:

    screen shot of change account link with uac shield

    Collegamento che richiede un'elevazione immediata.

    Menu:

    screen shot of menu with uac shield

    Menu a discesa che richiede un'elevazione immediata.

  • Poiché le attività non ricordano stati con privilegi elevati, non modificare lo stato dello schermo dell'interfaccia utente.

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

Altitudine

  • Ogni volta che è possibile, progettare le attività da eseguire dagli utenti Standard senza elevazione. Concedere a tutti gli utenti l'accesso alle informazioni utili di sola lettura.

  • Elevare per 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, suddividere tali impostazioni come superficie dell'interfaccia utente separata.

    Non corretto:

    screen shot of date and time settings dialog box

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

    Corretto:

    screen shot of same dialog box without uac shields

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

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

    • Negli ambienti non gestiti si supponga che gli utenti standard possano elevare richiedendo un amministratore. La disabilitazione dei controlli che richiedono elevazione impedisce agli utenti di avere privilegi elevati dagli amministratori.
    • Negli ambienti gestiti si supponga che gli utenti standard non possano affatto elevare. La rimozione dei controlli che richiedono l'elevazione impedisce agli utenti di sapere quando arrestare l'aspetto.
  • Per eliminare l'elevazione non necessaria:

    • Se un'attività potrebbe richiedere l'elevazione, 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 punto di ingresso.
    • Una volta elevate, 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 elevare per apportare una modifica, ma scegliere di 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:
    • screen shot of window with only one button active
    • 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 rende l'aspetto che gli utenti non hanno davvero una scelta.
  • Non visualizzare un messaggio di errore quando le attività non riescono perché gli utenti hanno scelto di non elevare. Si supponga che gli utenti non abbiano intenzionalmente scelto di procedere, quindi non considerano questa situazione come un errore.

    Non corretto:

    screen shot of message: fabrikam restore can't run

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

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

  • Visualizzare l'interfaccia utente della schermata utente 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.
    screen shot of windows logo and uac shield overlay
    Sovrapposizione dello schermo UAC sull'icona del programma.
    Visualizzare l'interfaccia utente di elevazione all'avvio.
    Comando
    L'intero comando è solo per gli amministratori.
    screen shot of change account link and uac shield
    Schermata UAC sul pulsante o sul collegamento.
    Visualizzare l'interfaccia utente dell'elevazione quando viene fatto clic sul pulsante 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.
    screen shot of change settings link and uac shield
    Schermata UAC sul pulsante di comando o sul collegamento per apportare modifiche.
    Visualizzare l'interfaccia utente di elevazione quando viene fatto clic sul pulsante di comando, ma dopo eventuali conferme.
    Comando
    Gli utenti standard possono visualizzare le informazioni e eventualmente apportare alcune modifiche senza elevazione. consentire agli utenti standard di tentare e di elevare l'errore.
    screen shot of error with uac icon on retry button
    Non visualizzare lo schermo dell'interfaccia utente per il comando, ma mostrarlo per il punto di ingresso di elevazione se il comando ha esito negativo.
    Visualizzare l'interfaccia utente di elevazione quando l'utente esegue il tentativo di comando.
    Passaggio attività
    Tutti i passaggi successivi richiedono l'elevazione.
    screen shot of next command button with uac shield
    Schermata UAC sul pulsante Avanti (o equivalente).
    Visualizzare l'interfaccia utente di elevazione quando viene fatto clic su Avanti o altro pulsante di commit.
    Passaggio attività
    Alcuni rami richiedono l'elevazione.
    screen shot of command link with uac shield
    Schermata dell'interfaccia utente sui collegamenti ai comandi che richiedono l'elevazione.
    Visualizzare l'interfaccia utente di elevazione quando i collegamenti ai comandi con schermata UAC vengono cliccati.

Interfaccia utente di elevazione

  • Se l'utente fornisce un account non valido (nome o password) o non dispone di privilegi di amministratore, è sufficiente riprodurre 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 account utente è stato disattivato e un utente Standard tenta di eseguire un'attività che richiede l'elevazione, specificare un messaggio di errore che indica "Questa attività richiede privilegi di amministratore. Per eseguire questa attività, è necessario accedere usando un account amministratore."

screen shot of task requires privileges message

In questo esempio il controllo account utente è stato disattivato in modo che un messaggio di errore spiega che l'utente deve usare un account amministratore.

Procedure guidate

  • Non elevare più volte. Una volta elevata una procedura guidata, dovrebbe rimanere elevata.
  • Se l'attività viene eseguita all'interno della procedura guidata, inserire uno scudo dell'interfaccia utente nel 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 Progress, 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, tornare alla pagina Commit. In questo modo, l'utente può riprovare.
  • Se l'attività viene eseguita dopo il completamento della procedura guidata, inserire uno scudo dell'interfaccia utente nel 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. Dopo aver completato l'elevazione, chiudere la procedura guidata.
    • Se l'utente annulla l'interfaccia utente di elevazione, tornare alla pagina Commit. In questo modo, l'utente può riprovare.
  • Per le procedure guidate lunghe destinate solo agli amministratori, è possibile richiedere le credenziali di amministratore al punto di ingresso prima di visualizzare qualsiasi interfaccia utente.

Testo

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

Documentazione

Quando si fa riferimento al controllo account utente:

  • Fare riferimento alla funzionalità come Controllo account utente (per la prima menzione) o L'interfaccia utente (nella menzione successiva), non Account utente con privilegi minimi o LUA.
  • Fare riferimento a non amministratori come utenti standard.
  • Fare riferimento agli amministratori computer predefiniti come amministratori predefiniti.

Nella documentazione dell'utente:

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

Nella programmazione e in altre documentazioni tecniche:

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