Controllo dell'account utente
Nota
Questa guida di 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 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 attività amministrative concedendo 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. Gli utenti Standard, invece, non possono elevare 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.
Interfaccia utente del consenso, usata per elevare gli amministratori protetti per avere privilegi amministrativi.
password
Interfaccia utente 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 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 parentale sulle modifiche a livello di sistema, incluso il software installato.
Developers: Per informazioni sull'implementazione, vedere riprogettare '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 da Windows Vista. Il primo consiste nel notificare agli utenti solo quando un programma sta apportando 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.
Windows 7 introduce due impostazioni intermedie di Controllo dell'account utente.
Nota: Linee guida relative alla scrittura di codice per supportare i controllo dell'account utente vengono presentate in un articolo separato.
Concetti di progettazione
obiettivi
Un'esperienza di controllo account utente ben progettata ha gli obiettivi seguenti:
- Eliminare l'elevazione non necessaria. Gli utenti devono eseguire privilegi amministrativi 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 che un amministratore esegua o non possa essere eseguito in tutti gli ambienti gestiti. Gli amministratori devono conoscere le attività che richiedono l'elevazione dei privilegi. Se non riescono a prevedere in modo accurato la necessità di elevazione, è più probabile fornire il consenso per le attività amministrative quando non dovrebbero.
- Richiede uno sforzo minimo. Le attività che richiedono privilegi amministrativi devono essere progettate per richiedere un'elevazione singola. Le attività che richiedono più elevazioni diventano rapidamente noiose.
- Ripristinare i privilegi minimi. Una volta completata un'attività che richiede privilegi amministrativi, il programma deve ripristinare lo stato dei privilegi minimi.
flusso di attività elevazione dei privilegi
Quando un'attività richiede l'elevazione dei privilegi, prevede i passaggi seguenti:
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 vedere un'interfaccia utente di elevazione immediatamente dopo aver fatto clic su tali comandi e dovrebbero essere più cauti quando vedono l'interfaccia utente di elevazione dalle attività che non hanno uno scudo.
In questo esempio, gli elementi del pannello di controllo Controllo genitori e 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.
Elevazione. Per Gli amministratori protetti, l'attività richiede il consenso usando l'interfaccia utente di consenso. Per gli utenti Standard, l'attività richiede le credenziali di amministratore usando l'interfaccia utente delle credenziali.
Questi esempi mostrano l'interfaccia utente delle credenziali e l'interfaccia utente del consenso.
Processo con privilegi elevati separati. Internamente, viene creato un nuovo processo con privilegi elevati per eseguire l'attività.
Ripristinare i privilegi minimi. 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 si sposta avanti e indietro su un punto di ingresso di elevazione in una procedura guidata, l'utente deve elevare ogni volta.
Modelli di utilizzo
Controllo account utente ha diversi modelli di utilizzo (in ordine di preferenza):
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), si elimina completamente la necessità di un'interfaccia utente di elevazione e si consente agli utenti di completare l'attività.
risposta errata:
In questo esempio, gli utenti di Windows XP devono avere privilegi amministrativi per visualizzare o modificare il fuso orario corrente.
risposta esatta:
In questo esempio, la funzionalità fuso orario è stata riprogettata in Windows 7 e Windows Vista per funzionare per tutti gli utenti.
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.
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.
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 renderle elevate 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. È anche adatto per le impostazioni nelle pagine dell'hub ibrido del Pannello di controllo.
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.
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 procedure guidate lunghe 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 del programma con la sovrimpressione dello scudo UAC.
In questo esempio, il programma richiede privilegi amministrativi per l'avvio.
Istruzioni
Icona dello scudo 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 flusso di pagina richiedono l'elevazione dei privilegi, 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 dei privilegi. Poiché Windows XP non richiede mai l'elevazione dei privilegi, è 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.
Poiché il comando Nuova cartella richiede l'elevazione dei privilegi 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 :
Pulsante di comando che richiede l'elevazione immediata.
collegamenti ai comandi :
Collegamento di comando che richiede l'elevazione immediata.
collegamenti :
di schermata uac shield
Collegamento che richiede l'elevazione immediata.
Menu :
uac shield
Menu a discesa che richiede l'elevazione immediata.
Poiché le attività non ricordano gli stati elevati, non modificare lo scudo UAC in modo da riflettere 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à.
Elevazione
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 alle attività, non in base alle impostazioni. 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 superficie di interfaccia utente separata.
risposta errata:
In questo esempio le impostazioni utente Standard non vengono combinate correttamente con le impostazioni amministrative.
risposta esatta:
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 sono combinate con le impostazioni amministrative.
Non considerare la necessità di elevare i privilegi quando si determina se un controllo deve essere visualizzato o disabilitato. Ciò è dovuto al fatto che:
- Negli ambienti non gestiti presupporre che gli utenti Standard possano elevare le credenziali chiedendo a 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. La rimozione dei 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 l'elevazione al punto di ingresso.
- Una volta elevate, rimanere elevati fino a quando non sono più necessari privilegi elevati. Gli utenti non devono elevare più volte per eseguire una singola attività.
- Se gli utenti devono eseguire l'elevazione 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.
- risposta errata:
-
- 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.
risposta errata:
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à. Consentire agli utenti di scoprire questo fatto autonomamente.
Visualizzare lo scudo e l'interfaccia utente di elevazione dell'account utente in base alla tabella seguente:
Oggetto Circostanza Dove inserire lo scudo UAC Quando elevare Programma L'intero programma è solo per gli amministratori.
Sovrimpressione dello scudo UAC sull'icona del programma.Visualizzare l'interfaccia utente dell'elevazione dei privilegi all'avvio. Comando L'intero comando è solo per gli amministratori. di schermata uac
Schermata controllo dell'account utente sul pulsante di comando o sul collegamento.Visualizzare l'interfaccia utente dell'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. di schermata uac shield
Schermata UAC sul pulsante di comando o collegamento per apportare modifiche.Visualizzare l'interfaccia utente dell'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 l'elevazione in caso di errore.
Non visualizzare lo scudo UAC per il comando, ma mostrarlo per il punto di ingresso dell'elevazione se il comando non riesce.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 uac
Schermata UAC sul pulsante Avanti (o equivalente).Visualizzare l'interfaccia utente dell'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. di 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 ai comandi con schermata UAC.
Interfaccia utente 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 l'attività richiede privilegi di amministratore. Per eseguire questa attività, è necessario accedere usando un account amministratore."
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 UAC sul pulsante "Avanti" della pagina Commit (a cui deve essere assegnata un'etichetta più specifica). Quando l'utente esegue il commit:
- Se la pagina successiva è una pagina Stato, passare a tale pagina e visualizzare in modo modally l'interfaccia utente di elevazione. Dopo aver completato l'elevazione dei privilegi, 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 modally l'interfaccia utente di elevazione. Dopo aver completato l'elevazione dei privilegi, 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 UAC sul pulsante "Fine" della pagina Commit (a cui deve essere assegnata un'etichetta più specifica). Quando l'utente esegue il commit:
- Rimanere nella pagina Commit e visualizzare in modo modally l'interfaccia utente di elevazione. Dopo aver completato l'elevazione dei privilegi, 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 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 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 (alla 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 altri documenti tecnici:
- Fare riferimento all'atto di fornire 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.