Condividi tramite


Procedura dettagliata: gestione degli utenti di siti Web tramite i ruoli

Aggiornamento: novembre 2007

Molte applicazioni ASP.NET implicano l'appartenenza, ovvero l'autenticazione degli utenti in modo che abbiano accesso a risorse limitate, ad esempio le pagine riservate ai membri. Se l'applicazione è destinata a supportare più utenti o è prevista una modifica dell'elenco di utenti nel tempo, si prenda in considerazione la definizione dei ruoli per gestire l'accesso degli utenti. Per ruolo si intende il nome di un gruppo, ad esempio, responsabili, vendite o membri. Una volta definiti i ruoli, è possibile assegnare i singoli utenti a un ruolo. Successivamente, è possibile concedere autorizzazioni a un ruolo. Ogni utente di quel ruolo eredita le autorizzazioni assegnate. I ruoli sono un modo efficiente per gestire le autorizzazioni per gruppi di utenti.

In particolare, vengono illustrate le seguenti operazioni:

  • Definizione dei ruoli per un'applicazione.

  • Assegnazione di utenti a ruoli.

  • Creazione di regole (autorizzazioni) per concedere o negare in modo selettivo l'accesso alle pagine per regole diverse.

  • Definizione, a livello di codice, dell'eventualità che un utente appartenga a un particolare ruolo e dei ruoli assegnati all'utente corrente.

Prerequisiti

Per completare questa procedura dettagliata è necessario:

  • Visual Studio.

  • .NET Framework.

  • IIS installato nel computer locale.

  • SQL Server Express Edition installato nel computer locale.

  • Un modo per identificare i singoli utenti.

    Nota:

    Nelle applicazioni funzionanti, è possibile identificare gli utenti in vari modi, incluso l'account utente Windows di cui dispongono. Tuttavia, in questa procedura dettagliata, l'identificazione dell'utente sarà effettuata mediante l'accesso al sito. Pertanto, per questa procedura dettagliata è necessario disporre di un sito configurato per l'utilizzo dell'appartenenza ASP.NET. Se si dispone di un sito già configurato con l'appartenenza, è possibile utilizzarlo come punto di partenza per questa procedura dettagliata.

Configurazione di un sito Web, dell'appartenenza e dei ruoli

Prima di utilizzare i ruoli ASP.NET, è necessario disporre di un sito Web, configurare il sito per consentire l'appartenenza e configurare i ruoli utente. Se l'argomento Procedura dettagliata: creazione di un sito Web con appartenenza e accesso utente è già stato completato, è possibile utilizzare il sito Web configurato in quella procedura dettagliata.

Se non esiste un sito Web disponibile, utilizzare la procedura indicata di seguito per crearne uno. In caso contrario, andare alla sezione successiva "Creazione di cartelle per le pagine riservate ai membri".

Per creare un sito Web IIS locale

  1. Aprire Visual Studio.

  2. Scegliere Nuovosito Web dal menu File.

    Verrà visualizzata la finestra di dialogo Nuovo sito Web.

  3. In Modelli Visual Studio installati fare clic su Sito Web ASP.NET.

  4. Nella casella di riepilogo Percorso, scegliere File system.

  5. Fare clic su Sfoglia e selezionare una directory per l'applicazione, ad esempio C:\RolesWebSite.

  6. Nella casella Linguaggio scegliere il linguaggio di programmazione da utilizzare.

    Il linguaggio di programmazione scelto sarà il linguaggio predefinito per il sito Web; tuttavia, è possibile impostare i linguaggi di programmazione per ogni pagina singolarmente.

  7. Scegliere OK nella finestra di dialogo Nuovo sito Web.

    In Visual Web Developer saranno creati il sito Web e una nuova pagina denominata Default.aspx.

Creazione di cartelle per le pagine riservate ai membri

Per utilizzare i ruoli, è necessario creare due cartelle, MemberPages e GuestPages, in cui mantenere le pagine ad accesso limitato.

Nota:

Se si sta riutilizzando il sito Web della procedura dettagliata per l'appartenenza, è probabile che questa cartella esista già; pertanto è possibile ignorare il primo passaggio della procedura riportata di seguito.

Per creare cartelle per l'accesso limitato

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sulla directory principale del sito Web, scegliere Nuova cartella e denominarla MemberPages.

    Nella cartella sarà contenuta una pagina accessibile soltanto ad alcuni utenti.

  2. Fare clic con il pulsante destro del mouse sulla directory principale del sito Web, scegliere Nuova cartella e denominarla GuestPages.

    In questa cartella sarà contenuta una pagina accessibile a tutti gli utenti connessi (ma non agli utenti anonimi).

Configurazione del sito Web per l'appartenenza e per i ruoli

Una volta creato il sito Web di base, è possibile configurarlo per l'utilizzo dell'appartenenza e dei ruoli.

Per configurare il sito Web per l'appartenenza e i ruoli

  1. Scegliere Configurazione di ASP.NET dal menu Sito Web.

  2. Selezionare la scheda Protezione, fare clic sul collegamento Utilizzare la Configurazione guidata protezione per configurare la protezione mediante passaggi e scegliere Avanti.

  3. Andare al passaggio 2 della procedura guidata e selezionare l'opzione Da Internet.

    Nella procedura guidata viene visualizzata una pagina in cui è possibile selezionare il metodo di autenticazione che sarà utilizzato nel sito Web.

    Mediante questa opzione viene specificato che nell'applicazione sarà utilizzata l'autenticazione basata su form, tramite la quale gli utenti avranno accesso all'applicazione utilizzando una pagina di accesso che sarà creata più avanti nella procedura dettagliata.

  4. Fare clic su Avanti.

    Nella procedura dettagliata viene visualizzato un messaggio che indica che le informazioni relative all'utente saranno memorizzate utilizzando Impostazioni avanzate provider. Verrà utilizzato il provider predefinito che memorizza le informazioni sulle appartenenze in un file di database SQL Server Express Edition nella cartella App_Data del sito Web.

  5. Scegliere nuovamente Avanti.

  6. In Passaggio 4: Definizione dei ruoli, selezionare la casella di controllo Attivare i ruoli per il sito Web e scegliere Avanti.

  7. Quando richiesto, creare due ruoli, members e guests, quindi scegliere Avanti.

  8. In Passaggio 5: Aggiunta di nuovi utenti, creare tre utenti denominati member1, guest1 e memberGuest.

    È possibile assegnare qualsiasi password complessa, purché si sia certi di ricordarla. La lunghezza minima consentita per le password è di 7 caratteri, di cui uno almeno non deve essere alfanumerico. Utilizzare il proprio indirizzo di posta elettronica (anche se in questa procedura dettagliata non saranno inviati messaggi di posta elettronica).

    Nota:

    Non chiudere lo Strumento di amministrazione sito Web per il momento.

Nel sito Web in fase di creazione gli utenti potranno accedere a pagine diverse in base al proprio ruolo. Pertanto, è necessario creare alcune regole di accesso con cui determinare quali ruoli possono accedere a determinate cartelle.

Per configurare le regole di accesso per le cartelle del sito

  1. Nella procedura guidata per la protezione dello Strumento di amministrazione sito Web, fare clic su Avanti.

    In Passaggio 6: Aggiunta di nuove regole di accesso viene visualizzata una pagina in cui è possibile creare i ruoli in grado di determinare quali ruoli (o utenti) potranno ottenere l'accesso alle pagine del sito Web in uso.

  2. In Selezionare una directory per questa regola, espandere il nodo principale, quindi fare clic su GuestPages.

  3. In La regola si applica a, selezionare Utenti anonimi.

  4. In Autorizzazioni, scegliere Nega.

    Con la regola creata viene negato l'accesso agli utenti anonimi, vale a dire agli utenti non connessi.

  5. Scegliere Aggiungi questa regola.

    La nuova regola viene visualizzata nella griglia nella parte inferiore della pagina. Quando un utente richiede una pagina dalla directory GuestPages, le regole vengono controllate in ordine, dall'alto verso il basso, per determinare se l'utente è autorizzato ad accedere alla pagina. Se l'utente non è registrato, le pagine della cartella non saranno visualizzate.

  6. In Selezionare una directory per questa regola, fare clic su MemberPages.

  7. In La regola si applica a, fare clic su Ruolo, quindi scegliere members dall'elenco a discesa.

  8. In Autorizzazioni, scegliere Consenti.

    Mediante la regola creata, le autorizzazioni di accesso alla cartella MemberPages vengono concesse a tutti gli utenti inclusi nel ruolo members.

  9. Scegliere Aggiungi questa regola.

  10. In Selezionare una directory per questa regola, fare clic su MemberPages.

  11. In La regola si applica a, selezionare Tutti gli utenti.

  12. In Autorizzazioni, scegliere Nega.

  13. Scegliere Aggiungi questa regola.

    La seconda regola per la cartella MemberPages consente di accertarsi che l'accesso alla cartella sia concesso esclusivamente agli utenti del ruolo members. Le regole vengono elaborate nell'ordine in cui sono visualizzate nella griglia (dall'alto verso il basso).

    Mediante la prima regola (Consenti) viene concesso l'accesso agli utenti nel ruolo denominato members. Con la seconda regola (Nega) viene negato l'accesso a tutti gli altri utenti. È possibile creare tutte le regole Consenti oppure Nega necessarie all'applicazione. Quando un utente richiede una pagina della directory MemberPages, le regole vengono applicate in ordine, dall'alto verso il basso, per determinare se l'utente è autorizzato ad accedere alla pagina.

  14. Scegliere Fine per ritornare alla scheda Protezione.

    Nota:

    Non chiudere lo Strumento di amministrazione sito Web per il momento.

Assegnazione di utenti a ruoli

È necessario eseguire un ultimo passaggio: l'assegnazione degli utenti creati ai ruoli.

Per assegnare gli utenti ai ruoli.

  1. Nella scheda Protezione dello Strumento di amministrazione sito Web, in Utenti, fare clic Gestisci utenti.

  2. Nella riga relativa a guest1, fare clic su Modifica ruoli.

    Nella casella Ruoli è presente un elenco dei ruoli disponibili.

  3. Selezionare la casella di controllo guests per assegnare l'utente guest1 al ruolo guests.

  4. Nella riga relativa a member1, fare clic su Modifica ruoli e assegnare l'utente member1 al ruolo members.

  5. Utilizzando la stessa tecnica, assegnare l'utente memberGuest sia al ruolo guests, sia al ruolo members.

  6. Chiudere lo strumento Amministrazione sito Web, quindi eseguire le operazioni indicate di seguito.

    1. Fare clic sull'icona di aggiornamento in Esplora soluzioni.

    2. Scegliere Configurazione di ASP.NET dal menu Sito Web per aprire lo strumento Amministrazione sito Web.

      In questo modo è garantita la chiusura della connessione al database delle appartenenze utilizzato dallo strumento Amministrazione sito Web.

    3. Chiudere lo strumento Amministrazione sito Web.

Aggiunta di pagine ad accesso limitato

Per eseguire il test delle impostazioni di appartenenza e di ruolo, è necessario creare un metodo che consenta agli utenti di effettuare l'accesso in modo da renderne possibile l'identificazione. È anche necessario creare alcune pagine Web che consentano di eseguire il test delle regole di accesso create.

Per creare una pagina predefinita per tutti gli utenti

  1. Passare a Visual Studio.

  2. Aprire la pagina Default.aspx e passare alla visualizzazione Progettazione.

    Se non si dispone di una pagina Default.aspx, aggiungerne una alla directory principale del sito Web.

    Nota:

    Accertarsi di denominare la pagina Default.aspx; questo nome sarà utilizzato più avanti nella procedura dettagliata.

  3. Aggiungere un'intestazione con un testo, ad esempio Welcome!

  4. Dal gruppo Login della Casella degli strumenti trascinare un controllo LoginStatus nella pagina.

    Se selezionato, il controllo LoginStatus consente agli utenti di passare alla pagina Login.aspx, se non è stato ancora effettuato l'accesso.

  5. Dal gruppo Login della Casella degli strumenti trascinare un controllo LoginName nella pagina. Impostare la proprietà FormatString su "Hello {0}.".

    Il controllo LoginName consentirà di visualizzare il nome dell'utente, se ha effettuato l'accesso.

  6. Dal gruppo Standard della Casella degli strumenti trascinare un controllo HyperLink nella pagina. Nel pannello Proprietà del controllo HyperLink, impostare la proprietà Text su Guests and Members e la proprietà href su ~/GuestPages/Guests.aspx.

    Nota:

    La pagina Guests.aspx verrà creata più avanti in questa procedura dettagliata.

  7. Dal gruppo Standard della Casella degli strumenti trascinare un altro controllo HyperLink nella pagina. Nel pannello Proprietà del controllo HyperLink, impostare la proprietà Text su Members e la proprietà href su ~/MemberPages/Members.aspx.

    Nota:

    La pagina Members.aspx verrà creata più avanti in questa procedura dettagliata.

È stata creata una home page disponibile per tutti gli utenti. Da questa pagina, gli utenti possono collegarsi ad altre pagine, alcune delle quali con accesso limitato. Nel passaggio successivo viene creata una pagina di accesso semplice.

Per creare una pagina di accesso

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla directory principale del sito Web e scegliere Aggiungi nuovo elemento. Aggiungere un Web Form denominato Login.aspx al sito Web.

  2. Nella pagina Login.aspx passare alla visualizzazione Progettazione.

  3. Dal gruppo Login della Casella degli strumenti trascinare un controllo Login nella pagina.

  4. Nella pannello Proprietà del controllo Login, impostare la proprietà DestinationPageUrl su ~/Default.aspx.

Infine, è necessario creare alcune pagine che rappresentano il contenuto con accesso limitato del sito.

Per creare pagine con accesso limitato

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sulla cartella GuestPages, scegliere Aggiungi nuovo elemento e aggiungere alla cartella un nuovo Web Form denominato Guests.aspx.

  2. Passare alla visualizzazione Progettazione e aggiungere un'intestazione alla pagina Guests.aspx, ad esempio Welcome to the Guests page!

  3. Dal gruppo Standard della Casella degli strumenti trascinare un controllo HyperLink nella pagina. Nel pannello Proprietà del controllo HyperLink, impostare la proprietà Text su Home e la proprietà href su ~/Default.aspx.

  4. In Esplora soluzioni, fare clic con il pulsante destro del mouse sulla cartella MemberPages, scegliere Aggiungi nuovo elemento e aggiungere un nuovo Web Form denominato Members.aspx.

  5. Passare alla visualizzazione Progettazione e aggiungere un'intestazione alla pagina Members.aspx, ad esempio Welcome to the Members page!

  6. Dal gruppo Standard della Casella degli strumenti trascinare un controllo HyperLink nella pagina.

  7. Nel pannello Proprietà del controllo HyperLink, impostare la proprietà Text su Home e la proprietà href su ~/Default.aspx.

    Non è necessario aggiungere alcun codice alle pagine per limitare l'accesso. L'accesso alle pagine è limitato in quanto si trovano in cartelle protette da regole di accesso.

Esecuzione del test dei ruoli

È ora possibile eseguire il test del sito.

Per eseguire il test dei ruoli

  1. Passare alla pagina Default.aspx e premere CTRL+F5 per eseguirla.

  2. Fare clic su Guests and Members.

    Si verrà reindirizzati alla pagina Login.aspx, in quanto sta tentando di accedere a una pagina che non consente l'accesso agli utenti anonimi.

  3. Accedere come guest1, nel ruolo guests.

    Una volta eseguito l'accesso, si verrà reindirizzati alla pagina Guests.aspx.

    Fare clic su Home per ritornare alla pagina Default.aspx.

    Nella pagina Default.aspx, nel punto in cui è inserito il controllo LoginName, viene visualizzato il testo Hello, guest1. Inoltre, mediante il controllo LoginStatus il testo Login viene modificato in Logout, in quanto è stato effettuato l'accesso come guest1.

  4. Fare clic su Guests and Members.

    Questa volta si accede direttamente alla pagina Guests.aspx in quanto è stato già effettuato l'accesso come utente nel ruolo di ospite.

  5. Fare clic su Home per ritornare alla pagina Default.aspx.

  6. Fare clic su Members.

    Si verrà reindirizzati alla pagina Login.aspx , in quanto l'utente guest1 non dispone delle autorizzazioni per la pagina Members.aspx.

  7. Accedere come member1 o memberGuest.

    Si verrà reindirizzati alla pagina Members.aspx, in quanto è stato effettuato l'accesso come utente nel ruolo members.

  8. Fare clic su Home per ritornare alla pagina Default.aspx.

    La pagina ora riflette il nuovo nome di accesso.

Passaggi successivi

In questa procedura dettagliata viene illustrata la funzionalità di base di gestione dei ruoli ASP.NET. È possibile sperimentare ulteriori funzionalità di gestione dei ruoli. Può, ad esempio, essere necessario:

Vedere anche

Attività

Procedura dettagliata: creazione di un sito Web con appartenenza e accesso utente

Procedura dettagliata: operazioni di filtro sui nodi della mappa del sito in base ai ruoli di protezione

Concetti

Informazioni sulla gestione dei ruoli

Riferimenti

AuthorizationSection