Parte 7: Appartenenza e autorizzazione

di Jon Galloway

MVC Music Store è un'applicazione di esercitazione che introduce e spiega in modo dettagliato come usare ASP.NET MVC e Visual Studio per lo sviluppo Web.

MVC Music Store è un'implementazione di negozio di esempio leggera che vende album musicali online e implementa l'amministrazione del sito di base, l'accesso utente e la funzionalità del carrello acquisti.

Questa serie di esercitazioni illustra in dettaglio tutti i passaggi eseguiti per compilare l'applicazione di esempio MVC Music Store ASP.NET. La parte 7 illustra l'appartenenza e l'autorizzazione.

Il controller di Store Manager è attualmente accessibile a chiunque visiti il nostro sito. Modificare questa opzione per limitare l'autorizzazione agli amministratori del sito.

Aggiunta di AccountController e Visualizzazioni

Una differenza tra il modello di applicazione Web MVC 3 completo ASP.NET e il modello di applicazione Web vuota MVC 3 ASP.NET è che il modello vuoto non include un controller account. Verrà aggiunto un controller account copiando alcuni file da una nuova applicazione MVC ASP.NET creata dal modello di applicazione Web MVC 3 completo ASP.NET MVC 3.

Creare una nuova applicazione ASP.NET MVC usando il modello di applicazione Web MVC 3 completo ASP.NET e copiare i file seguenti nelle stesse directory del progetto:

  1. Copiare AccountController.cs nella directory Controller
  2. Copiare AccountModels nella directory Modelli
  3. Creare una directory account all'interno della directory Views e copiare tutte e quattro le visualizzazioni in

Modificare lo spazio dei nomi per le classi Controller e Model in modo che inizino con MvcMusicStore. La classe AccountController deve usare lo spazio dei nomi MvcMusicStore.Controller e la classe AccountModels deve usare lo spazio dei nomi MvcMusicStore.Models.

Nota: questi file sono disponibili anche nella MvcMusicStore-Assets.zip download da cui sono stati copiati i file di progettazione del sito all'inizio dell'esercitazione. I file di appartenenza si trovano nella directory Code.

La soluzione aggiornata avrà un aspetto simile al seguente:

Screenshot del riquadro Esplora soluzioni con il punto C, il punto C, i modelli di account cs e i file nella cartella/account evidenziati.

Aggiunta di un utente amministrativo con il sito di configurazione ASP.NET

Prima di richiedere l'autorizzazione nel sito Web, sarà necessario creare un utente con accesso. Il modo più semplice per creare un utente consiste nell'usare il sito Web di configurazione predefinito ASP.NET.

Avviare il sito Web di configurazione ASP.NET facendo clic sull'icona nella Esplora soluzioni.

Screenshot della finestra Esplora soluzioni con l'icona del globo e del martello evidenziata in un rettangolo rosso.

In questo modo viene avviato un sito Web di configurazione. Fare clic sulla scheda Sicurezza nella schermata iniziale, quindi fare clic sul collegamento "Abilita ruoli" al centro della schermata.

Screenshot del sito Web di configurazione che mostra la sezione Ruoli e il collegamento Abilita ruoli evidenziato in un rettangolo rosso.

Fare clic sul collegamento "Crea o Gestisci ruoli".

Screenshot del sito Web di configurazione che mostra la sezione Ruoli e il collegamento Crea o Gestisci ruoli evidenziato in un rettangolo rosso.

Immettere "Amministratore" come nome del ruolo e premere il pulsante Aggiungi ruolo.

Screenshot della finestra di configurazione che mostra l'amministratore nel campo Nuovo nome ruolo e viene evidenziato con una freccia rossa.

Fare clic sul pulsante Indietro, quindi fare clic sul collegamento Crea utente sul lato sinistro.

Screenshot del sito Web di configurazione che mostra la sezione Utenti e il collegamento Crea utente evidenziato in un rettangolo rosso.

Compilare i campi delle informazioni utente a sinistra usando le informazioni seguenti:

Campo Valore
Nome utente Amministratore
Password password123!
Conferma password password123!
Posta elettronica (qualsiasi indirizzo di posta elettronica funzionerà)
Domanda segreta (qualsiasi cosa ti piace)
Risposta segreta (qualsiasi cosa ti piace)

Nota: è naturalmente possibile usare qualsiasi password desiderata. Le impostazioni di sicurezza delle password predefinite richiedono una password lunga 7 caratteri e contiene un carattere non alfanumerico.

Selezionare il ruolo Amministratore per questo utente e fare clic sul pulsante Crea utente.

Screenshot del sito Web di configurazione che mostra la sezione Ruoli con la casella di controllo Ruolo amministratore selezionata e evidenziata con un rettangolo rosso.

A questo punto, verrà visualizzato un messaggio che indica che l'utente è stato creato correttamente.

Screenshot del sito Web di configurazione che mostra un messaggio che la creazione dell'account utente è stata completata correttamente.

È ora possibile chiudere la finestra del browser.

Autorizzazione basata sul ruolo

Ora è possibile limitare l'accesso all'attributo StoreManagerController usando l'attributo [Autorizza], specificando che l'utente deve trovarsi nel ruolo Amministratore per accedere a qualsiasi azione controller nella classe.

[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
    // Controller code here
}

Nota: l'attributo [Autorizza] può essere inserito in metodi di azione specifici e a livello di classe Controller.

A questo punto, passare a /StoreManager visualizza una finestra di dialogo Accesso:

Screenshot della pagina Web dell'archivio musicale che mostra la finestra di dialogo di accesso con campi di testo nome utente e password.

Dopo aver eseguito l'accesso con il nuovo account amministratore, è possibile passare alla schermata Modifica album come prima.