Membership e Roles API: autenticazione, autorizzazione e gestione dei ruoli con ASP.NET 2.0

3 pagine in totale: <<Indietro 1 2 [3]

Configuriamo la fonte dei dati

Se volessimo personalizzare il database utilizzato dalla nostra web application dobbiamo modificare il web.config, a mano o attraverso il tool visuale che viene aggiunto ad IIS:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
    <add name="MioDatabase" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\prova.mdf;Integrated Security=True; User Instance=True" />
</connectionStrings>
  <system.web>
        <membership defaultProvider="SqlProvider">
            <providers>
                <add name="SqlProvider"  type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                connectionStringName="MioDatabase"
                enablePasswordRetrieval="false"
                enablePasswordReset="true"
                requiresQuestionAndAnswer="false"
                applicationName="/"
                requiresUniqueEmail="false"
                passwordFormat="Hashed"
                minRequiredPasswordLength="1"
                minRequiredNonalphanumericCharacters="0"
                />
            </providers>
        </membership>
  </system.web>
</configuration>

Notare le sezione connectionString, all'interno della quale abbiamo inserito la stringa di connessione ad un database di nome prova.mdf. Date un'occhiata alla sintassi con cui è scritto il percorso del database:

|DataDirectory|/prova.mdf

Inserendo la stringa |DataDirectory| specifichiamo la directory App_Data"all'interno della web application attuale. Non è possibile specificare in nessun altro modo un percorso relativo all'interno di questa stringa. L'alternativa è il classico percorso assoluto:

c:\inetpub\wwwroot\mio_web\App_Data\prova.mdf"

Per SQL Server sarà sufficiente modificare la stringa di connessione:

<connectionStrings>
  <add name="MioDatabase" connectionString="Data Source=nomeserver; Initial Catalog=aspnetdb; User Id=sa; Password=xxx;" />
</connectionStrings>

Prima di poter utilizzare SQL Server come database per la memorizzazione dei dati è necessario creare un database all'interno di esso con una procedura apposita. La più semplice è andare dal prompt dei comandi all'interno della directory contenente il .NET Framework 2.0 e lanciare il comando:

Aspnet_regsql.exe

Nel web.config per la definizione del provider abbiamo definito alcune proprietà. Vediamole nel dettaglio:

  • connectionStringName: nome della connessione definita nella sezione connectionStrings;
  • name: nome del provider, da utilizzare con l'attributo defaultProvider nella sezione Membership;
  • requiresQuestionAndAnswer: per la creazione di un utente non viene chiesta la domanda e la risposta per il recupero delle credenziali;
  • minRequiredPasswordLength: lunghezza minima della password;
  • minRequiredNonalphanumericCharacters: numero di caratteri non alfanumerici richiesti per la password;
  • applicationName: path dell'applicazione;
  • requiresUniqueEmail: se impostata a "true", non sarà possibile memorizzare più utente con la stessa mail;
  • passwordFormat: metodo di memorizzazione della password nel database. Possiamo inserire le seguenti impostazioni:
    • Hashed: dalla password viene creata una stringa alfanumerica da cui non è possibile risalire al testo reale della password. In questo caso non sarà più possibile comunicare la password qualora un utente la ne facesse richiesta;
    • Clear: la password viene memorizzata in chiaro;
    • Encrypted: la password viene crittografata.
  • enablePasswordRetrieval: permette il recupero della password;
  • enablePasswordReset: permette il reset della password;
  • type: membership provider utilizzato.

Notare inoltre l'attributo defaultProvider nella sezione <membership />. Nella sezione providers possiamo infatti inserire più di un provider e grazie a questo attributo possiamo specificare quale utilizzare.

Gli esempi

Alla fine di questo articolo potete trovare i link per due esempi che mettono in pratica quanto spiegato finora. Nel primo vengono utilizzati i nuovi Security Server Controls. Totale linee di codice scritto: zero.

Nel secondo c'è un esempio di autenticazione con roles che utilizza per la creazione e la gestione degli utenti le API Membership e Roles. Di facile utilizzo, permette la creazione di utenti con assegnazione dei roles e sono presenti tre link con tre zone d'accesso con diversi privilegi.

Conclusioni

Le novità introdotte con questa nuova versione del .NET Framework sono numerose e finalmente sono state aggiunte molte mancanze presenti nelle versioni 1.x.

I programmatori Microsoft hanno voluto dare un grosso aiuto agli sviluppatori web inserendo strumenti, web control e classi che facilitano notevolmente il lavoro.

Il nuovo sviluppo a provider facilita anche personalizzazioni "estreme" della nostra web application. Nel prossimo articolo di questa serie che ci terrà compagnia nei prossimi mesi vedremo un semplice esempio di un provider personalizzato per la gestione della membership.

Tutti gli articoli dello speciale su ASP.NET 2.0

3 pagine in totale: <<Indietro 1 2 [3]

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC