Condividi tramite


Parte 7: Appartenenza e autorizzazione

di Jon Galloway

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

MVC Music Store è un'implementazione leggera del negozio di esempio 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 riguarda l'appartenenza e l'autorizzazione.

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

Aggiunta di AccountController e visualizzazioni

Una differenza tra il modello ASP.NET MVC 3 Web Application completo e il modello ASP.NET MVC 3 Empty Web Application è che il modello vuoto non include un Account Controller. Si aggiungerà un controller account copiando alcuni file da una nuova applicazione MVC ASP.NET creata dal modello completo di applicazione Web MVC 3 ASP.NET.

Creare una nuova applicazione MVC ASP.NET 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 Controllers
  2. Copiare AccountModel nella directory Models
  3. Crea una directory Account all'interno della directory Views e copia le quattro visualizzazioni.

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.Controllers e la classe AccountModels deve usare lo spazio dei nomi MvcMusicStore.Models.

Nota: questi file sono disponibili anche nel download MvcMusicStore-Assets.zip 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 dovrebbe essere simile alla seguente:

Screenshot del riquadro Esplora soluzioni con Account Controller punto C S, Account Models punto C S e i file nella cartella /Account/ evidenziati.

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

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

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

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

Verrà 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 "Administrator" come nome del ruolo e premere il pulsante Aggiungi ruolo.

Screenshot della finestra di configurazione che mostra l'amministratore nel campo Nuovo nome ruolo ed è 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
Conferma password
di posta elettronica (qualsiasi indirizzo di posta elettronica funzionerà)
domanda di sicurezza (qualunque cosa ti piace)
Security Answer (qualunque cosa ti piace)

Nota:

  • Nella tabella precedente la password è stata ommitata.
  • Naturalmente è possibile usare qualsiasi password desiderata. Le impostazioni di sicurezza della 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 indica che la creazione dell'account utente è stata completata correttamente.

È ora possibile chiudere la finestra del browser.

Autorizzazione basata su ruoli

È ora possibile limitare l'accesso a StoreManagerController usando l'attributo [Authorize], specificando che l'utente deve trovarsi nel ruolo Amministratore per accedere a qualsiasi azione del controller nella classe .

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

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

Ora navigare a /StoreManager viene visualizzata una finestra di dialogo di accesso.

Screenshot della pagina Web dell'archivio musicale che mostra la finestra di dialogo di accesso con i 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.