Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
- Copiare AccountController.cs nella directory Controllers
- Copiare AccountModel nella directory Models
- 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:
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.
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.
Fare clic sul collegamento "Crea o gestisci ruoli".
Immettere "Administrator" 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 | |
| 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.
A questo punto, verrà visualizzato un messaggio che indica che l'utente è stato creato 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.
Dopo aver eseguito l'accesso con il nuovo account amministratore, è possibile passare alla schermata Modifica album come prima.