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:
- Copiare AccountController.cs nella directory Controller
- Copiare AccountModels nella directory Modelli
- 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:
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.
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.
Fare clic sul collegamento "Crea o Gestisci ruoli".
Immettere "Amministratore" come nome del ruolo e premere il pulsante Aggiungi ruolo.
Fare clic sul pulsante Indietro, quindi fare clic sul collegamento Crea utente sul lato sinistro.
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.
A questo punto, verrà visualizzato un messaggio che indica che l'utente è stato creato 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:
Dopo aver eseguito l'accesso con il nuovo account amministratore, è possibile passare alla schermata Modifica album come prima.