Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Procedura dettagliata: utilizzo dell'autenticazione basata su form in ASP.NET MVC

Molte applicazioni Web richiedono una modalità per limitare l'accesso ad alcune risorse, come ad esempio alcune pagine specifiche, in modo che tali risorse siano accessibili solo agli utenti autenticati. Il modello di progetto predefinito di applicazione Web per ASP.NET MVC fornisce un controller, modelli di dati e visualizzazioni che è possibile utilizzare per aggiungere l'autenticazione basata su form ASP.NET all'applicazione desiderata. La funzionalità incorporata consente agli utenti di registrarsi, di effettuare l'accesso, di disconnettersi e di modificare la password. Per molte applicazioni questa funzionalità fornisce un livello di autenticazione utente sufficiente.

In questa procedura dettagliata viene illustrata la funzionalità fornita per impostazione predefinita per l'autenticazione basata su form ASP.NET in un'applicazione ASP.NET MVC. Nella procedura dettagliata vengono illustrate le seguenti attività:

  • Creazione di un'applicazione ASP.NET MVC contenente la funzionalità incorporata per l'autenticazione.

  • Utilizzo delle funzionalità incorporate per creare un nuovo account utente.

  • Modifica della password da parte degli utenti connessi.

  • Limitazione dell'accesso a visualizzazioni specifiche in modo che solo gli utenti autenticati, ovvero connessi, possano visualizzarle.

Per completare questa procedura dettagliata, è necessario:

  • Microsoft Visual Studio 2008 Service Pack 1 o Visual Web Developer 2008 Express Edition Service Pack 1 oppure una versione successiva di Visual Studio.

  • Framework di ASP.NET MVC 2. Se è stato installato Visual Studio 2010, ASP.NET MVC 2 è già disponibile sul computer. Per scaricare la versione più aggiornata del framework, vedere la pagina di download di ASP.NET MVC.

Nella procedura dettagliata si presuppone che l'utente abbia familiarità con MVC ASP.NET. Per ulteriori informazioni, vedere ASP.NET MVC 2.

Creare innanzitutto una nuova applicazione Web ASP.NET MVC.

Per creare un'applicazione ASP.NET MVC

  1. Scegliere Nuovo progetto dal menu File.

  2. In Tipi progetto nella finestra di dialogo Nuovo progetto espandere Visual Basic o Visual C#, quindi fare clic su Web.

  3. In Modelli Visual Studio installati selezionare Applicazione Web ASP.NET MVC 2.

  4. Nella casella Nome digitare MvcAuthentication.

  5. Nella casella Percorso immettere il nome della cartella di progetto.

  6. Selezionare Crea directory per soluzione.

  7. Scegliere OK.

  8. Nella finestra di dialogo Crea progetto unit test selezionare No, non creare progetto di unit test, quindi fare clic su OK.

    NotaNota:

    Se si utilizza l'edizione Standard di Visual Studio, la finestra di dialogo Crea progetto unit test non viene visualizzata.

    Verrà creato il nuovo progetto di applicazione MVC.

Nella cartella Controllers la classe controller AccountController contiene i metodi di azione che consentono la registrazione di un nuovo utente, l'accesso dell'utente all'applicazione e la disconnessione dalla stessa e la modifica della password di un utente esistente. Nella cartella Views la cartella Accounts contiene le visualizzazioni che supportano tali azioni. Nella cartella Models la classe AccountModels contiene le classi che definiscono gli oggetti dati, i servizi e le routine di convalida che supportano l'autenticazione basata su form.

Nella cartella Views la sottocartella Shared contiene un controllo denominato LogOnUserControl.ascx che indica se l'utente è connesso. Il controllo viene visualizzato all'inizio della visualizzazione di pagina master. Quando l'utente non è connesso, il controllo visualizza "Accedi" e i collegamenti alla visualizzazione LogOn. Quando l'utente è connesso, il controllo visualizza un messaggio di benvenuto che include il nome dell'utente e un collegamento che consente all'utente di disconnettersi.

In questa parte della procedura dettagliata verranno utilizzate le funzionalità incorporate dell'applicazione per registrare un nuovo utente ed esaminare come vengono archiviate le informazioni sull'utente.

Per registrare un nuovo utente

  1. Premere CTRL+F5 per eseguire l'applicazione.

  2. Nella parte superiore della pagina fare clic su Accedi.

  3. Fare clic su Registra.

  4. Immettere i valori per le caselle Nome utente, Indirizzo di posta elettronica, Password e Conferma password.

    Prendere nota del nome utente e della password utilizzati poiché tali credenziali saranno necessarie più avanti in questa procedura dettagliata.

  5. Fare clic su Registra.

    Nella parte superiore della pagina verranno visualizzati un messaggio di benvenuto e un collegamento per la disconnessione.

Quando si registra un utente, il framework ASP.NET MVC verifica la presenza del file di database delle appartenenze ASP.NET. Se il database non esiste, in ASP.NET viene creato un file di database denominato ASPNETDB.MDF, il quale viene popolato con le tabelle necessarie.

Per esaminare il database delle appartenenze

  1. In Esplora soluzioni fare clic sul pulsante Aggiorna, quindi espandere la cartella App_Data.

    Il file ASPNETDB.MDF viene aggiunto alla cartella App_Data.

  2. In Esplora server espandere Connessioni dati, quindi espandere ASPNETDB.MDF.

    È possibile ora esaminare le tabelle, le visualizzazioni dati e le stored procedure che costituiscono il database. Si noti che sono presenti tabelle, visualizzazioni e stored procedure che supportano l'autenticazione utente, i profili, l'appartenenza e i ruoli.

Il modello di progetto ASP.NET MVC fornisce i metodi di azione e le visualizzazioni che consentono agli utenti di modificare le password ma è possibile decidere come utilizzarli. Per questa procedura dettagliata verrà aggiunto un collegamento Cambia password al controllo LogOnUserControl.ascx. Pertanto, ogni volta che l'utente è connesso verrà visualizzato il collegamento alla visualizzazione ChangePassword.

Per aggiungere e testare la funzionalità di modifica della password

  1. Se l'applicazione Web è ancora in esecuzione nel browser, chiudere il browser.

  2. Nella sottocartella Shared della cartella Views aprire il controllo LogOnUserControl.ascx.

  3. Inserire il markup del collegamento all'azione seguente subito dopo il collegamento all'azione LogOff:

    [ <%: Html.ActionLink("Change Password", "ChangePassword", "Account") %> ]
    
  4. Salvare il file.

  5. Premere CTRL+F5 per compilare ed eseguire l'applicazione.

  6. Accedere con le credenziali dell'utente creato in precedenza.

    Nella parte superiore della pagina verranno visualizzati il messaggio di benvenuto, il collegamento per la disconnessione e il nuovo collegamento per la modifica della password.

  7. Fare clic su Cambia password.

  8. Immettere i valori per le caselle Password corrente, Nuova password e Conferma nuova password.

  9. Fare clic su Cambia password.

    La password verrà modificata.

  10. Fare clic sul collegamento Disconnetti.

  11. Fare clic sul collegamento Accedi ed effettuare nuovamente l'accesso utilizzando lo stesso nome utente e la nuova password.

Ora che gli utenti sono in grado di effettuare l'accesso, di disconnettersi e di modificare una password, è possibile specificare le parti dell'applicazione che devono essere limitate agli utenti autenticati. È possibile limitare l'accesso a una visualizzazione mediante l'attributo AuthorizeAttribute per contrassegnare il metodo di azione che crea la visualizzazione. Per limitare l'accesso a tutte le visualizzazioni di un controller utilizzare l'attributo AuthorizeAttribute per contrassegnare il controller stesso.

Ai fini di questa procedura dettagliata verrà limitato l'accesso alla visualizzazione About.

Per limitare l'accesso a una visualizzazione

  1. Se l'applicazione Web è ancora in esecuzione nel browser, chiudere il browser.

  2. Aprire la classe HomeController e individuare il metodo di azione About.

  3. Aggiungere l'attributo AuthorizeAttribute alla dichiarazione del metodo di azione About, come illustrato nell'esempio seguente:

    [Authorize]
    public ActionResult About()
    {
        return View();
    }
    

    <Authorize()> _
    Function About() As ActionResult
        Return View()
    End Function
    
  4. Salvare il file.

  5. Premere CTRL+F5 per compilare ed eseguire l'applicazione.

  6. Senza effettuare l'accesso fare clic sulla scheda Informazioni su.

    Verrà visualizzata la visualizzazione LogOn poiché ora sarà necessario effettuare l'accesso per poter visualizzare la pagina About.

  7. Accedere all'applicazione.

  8. Fare clic sulla scheda Informazioni su.

    Verrà visualizzata la pagina About.

Sebbene il modello di progetto ASP.NET MVC fornisce l'autenticazione basata su form, è possibile che si desideri ottenere ulteriori informazioni sull'appartenenza ASP.NET e sull'aggiunta dei ruoli all'applicazione Web. Per ulteriori informazioni, vedere gli argomenti seguenti:

Mostra: