Antonio Feliziani
a- a+

ASP.NET Membership

Andiamo oggi ad analizzare le funzionalità dimembership e gli oggetti di Login tramite un piccolo Step-by-step

Partiamo inizzialmente dai settaggi del nostro IIS.

Cominciamoandanto nell’mmc di IIS, poi Siti Web, poi sul sito web di nostro interesse clitasto desto del mouse  e selezioniamoProprietà, a questo punto apriamo il tab “Asp.Net” e scegliamo come versione la2.0.xxxx


Ora selzioniamo Modifica Configurazione

Andiamo quindi nel tab Generale e selezionamo Aggiungi e inseriamo una nostranuova stringa di connessione



Dal tab Autenticazione andiamo ora a selezionare comemodalità di autenticazione Form , se vogliamo possiamo andare a cambiare ilnome dei Cookie Http ed in fine dobbiamo specificare quale è la pagina di logine il timeout del cookie.
 

Andremo ora a scegliere, modificare o volendo, aggiungere,il provider della nosrtra applicazione, nel caso avessimo istanziato inprecedenza una nuova connection string dobbiamo selezionare il tastoGestisciProvaider e nella proprietà connectionString inserire il nome dellaconnessione aggiunta

A questo punto I nostri parametri personalizzatisaranno memorizzati nel web.config della nosta applicazione web, attenzione!Non troveremo tutte le impostazioni ma soltanto quelle cambiate che andranno asovrascrivere quelle del machine.config.

Se abbiamo da prima impostato come database per la nostra applicazione webun nuovo database creato in Sql2000 o SQl2005 ora dobbiamo creare la strutturadi tabelle Storeprocedure e tutto il resto che necessita la nostraapplicazione!

Per creare una nuova tabella di membership in SqlServer utilizzeremo ilcommand prompt di Visual studio 2005, e andiamo a digitare su questaaspnet_regsql

 

Di seguito ci comparirà il seguente wizard



Qui andiamo ad inserire I dati del nostro database precedentemente creato mavuoto.

Nb:la stessa procedura ci potrebbe permettere di droppare le tabelle checreiamo ora in un futuro quando forse non ne avremo più bisogno.

Ora andiamo a creare la nostra pagina di login (se avete lasciato nelleconfigurazioni quella di default perciò sarà login.aspx) e possiamo inserire inessa i nostri controlli per il login.

 

Quindidal tab Login della Toolbox di VisualStudio prendiamo il componente Login


Premento F4 oppure selezionando propietà dal tasto destro sull’oggetto cicomparirà la scheda completa delle stesse per il componente di login , quipossiamo andare a settare diverse proprietà per il nostro componente ...
 

e con pochissimo tempo aggiungeremo il nostro provider per la connessione AspNetSqlMembershipProvidere delle pagine vuote dove inserire i moduli di recupero password di creazionedi un’utente e magari di help e con l’aggiunta di piccole icone trasformarlo inqualcosa di più funzionale e gradevole da vedere



possiamo anche specificare se vogliamo dove reindirizzare l’utente dopo averfatto il login.

Unavolta finita questa prima parte andiamo a ultimare la pagina per il reguperodelle password, sempre dalla Toolbox di VisualStudio prendiamo il componentePasswordrecovery lo mettiamo nella nostra pagina apposita e lo andiamo apersonalizzare come avevamo fatto con l’altro .

Adifferenza dell’altro componente questo non è proprio autosufficente, di fattidovendo inviare delle mail per ricordarci la password dobbiamo passargli iparamentri giusti per uscire 

Aggiungiamoquindi il blocco  <mailSettings>  in <system.net>  nel web.config .

<system.net>

      <mailSettings>

            <smtp from="antoniof@dominio.com">

                  <network host="out.dominio.it" password="" userName="" />

            </smtp>

      </mailSettings>
</system.net>

 

Notiamo che system.net è la nuova classe che serve perinviare email, se vogliamo approfondire questo argomento possiamo farlo tramiteun’altro mio articlo pubblicato proprio su questo.

 

 

Andiamoora a comporre la pagina che ci permetterà di inserire nuovi utenti dainterfaccia web, trasciniamo sempre dalla toolbox il nostro controlloCreateUserWirzard e personalizziamolo

Orase vogliamo possiamo persino aggiungere step personalizzati, magari per settarevalori riguardanti il Profile o aggiuntivi a quelli standard nel caso di unamembership personalizzata.

Orapossiamo aggingere una pagina per cambiare eventualmente la nostra password, edaggiungere ad essa il relativo controlo ChangePassword..ovviamentepersonalizzandolo a piacimento

Possiamo a questo punto dire che il nostro sito è di baseautosufficente per la gestione degli utenti
ma come possiamo capire se siamo loggati o no navigando le pagine del sito chenon richiedono il riconoscimento?

A questo proposito utlizzeremo un’altro componente chiamato LoginView, esso hadue stati
LoggedInTemplate
AnonymousTemplate

Che possono essere personalizzati a piacimento, magariintegrando dentro di esso anche i componenti LoginName e LoginStatus che cipemetteranno di visualizzare il nome dell’utente e un semplice linkbotton checi farà fare il login nel caso siamo ancora nello stato anonimo altriemti illogout se siamo loggati al sito

Possiamo finalmente dire di aver finito la gestione degli utenti, ma ora leproblematiche che sorgono sono diverse:

Come facciamo a limitare gli accessi ad una ipoteticacartella Admin del nostro sito a tutti gli utenti ?
Come posso altresi permettere l’accesso ai moderatori ad un’altra cartella condelle funzionalità intermedie nelle pagine?

O ad esempio obbligare i miei utenti al login ogni volta chesi collegano al sito?

 

La risposta è ...SEMPLICE!J

Usufruiano degli strumenti di amministrazione del sito

Che sono raggiungibili da questa icona sul SolutionExplore

Ci si apre così un’interfaccia web di gestione del sito, se ad esempio poiandiamo nella scheda protezione vedremmo apparirci le seguenti opzioni


Dove possiamo inserire i Ruoli

ma anche regole di accesso abbinate a questi ultimi o ai singoli utenti, unpò come accade in activedirectory per l’ambiente windows.



attraverso queste regole di accesso possiamo andare a settare i permessi sullecartelle come vediamo nell’immagine sopra.
Questi settaggi che andremo a fare sulle cartelle verranno salvati in deiweb.config nella root di ogni cartella ponderata, sovrascrivendo quindi isettaggi della cartella superiore.
Ad esempio vediamo cosa ha scritto nella cartella AreaModeratori

<authorization>

     <allow roles="Moderatori" />

     <deny users="*" />
</authorization>


Giuntialla fine di questo viaggio nelle Membership e nei componenti di login visaluto con uno scorcio sulla struttura della tabella autogenerataaspnet_Membership una delle tante del database creato, essa conterrà i nostridati per effettuare il login.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Lorenzo
Hai qualche domanda da fare?