3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Gestione degli utenti anonimi
ASP.NET 2.0 introduce anche la gestione avanzata degli utenti anonimi, caratteristica che permette, anche senza che l'utente inserisca le credenziali, il suo riconoscimento grazie ad un cookie. Di default questa gestione degli utenti è disabilitata e per attivarla dobbiamo inserire nel web.config queste direttive:
<anonymousIdentification
enabled="true"
cookieless="UseCookies"
cookieProtection="All"
cookieTimeout="100000"
/> Una volta attivata la gestione, all'utente viene assegnato come identificativo un ID alfanumerico casuale:
fr86ed98-aa99-3455-dj4e-dme84le9ak34Che possiamo ricavare con questo codice:
identificativo = Request.AnonymousIdUna volta attivato, quando un utente ritornerà nella nostra web application sarà riconosciuto proprio come se avesse eseguito l'autenticazione e sarà quindi possibile operare di conseguenza per fornire vari servizi.
Gestione dei roles
Finalmente di base è inclusa la gestione dei roles (o gruppi) assegnati agli utenti. Grazie alla nuova API Role Manager possiamo inserire gli utenti in particolari gruppi, senza grossi sforzi. Questo ci consente di poter chiudere determinate aree del nostro sito ad utenti che appartengono a determinati gruppi.
Dietro al funzionamento della API Role Manager c'è la classe Roles che, come la classe Membership dev'essere configurata con un provider nel web.config e, a differenza di quest'ultima, di default è disattivata.
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<roleManager
enabled="true"
cacheRolesInCookie="true"
/>
<authentication mode="Forms" />
</system.web>
</configuration> Anche in questo caso dobbiamo configurare il provider, se ne utilizziamo uno diverso da quello di default. Ipoteticamente si potrebbe utilizzare per la gestione degli utenti con la Membership un provider e per la gestione di Roles un'altra base di dati con un altro provider (ad esempio, Active Directory nel primo caso e SQL Server nel secondo):
<?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>
<roleManager
enabled="true"
cacheRolesInCookie="true"
defaultProvider="SqlProvider">
<providers>
<add name="SqlProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="MioDatabase"
/>
</providers>
</roleManager>
<authentication mode="Forms" />
</system.web>
</configuration> Una delle proprietà più importanti nella fase di configurazione di questo provider è cacheRolesInCookie. Impostando a "true" questo attributo facciamo in modo che, dopo l'autenticazione, il gruppo o i gruppi a cui appartiene l'utente vengano memorizzati in formato criptato all'interno di un cookie. Se impostato a "false", ad ogni richiesta dell'utente di una pagina protetta, sarà eseguito un accesso alla base dati contenente i ruoli per verificare se quell'utente può effettivamente accedere a quella sezione del sito.
Autenticazione senza cookie
Uno dei grandi difetti che ha sempre minato le versioni 1.x di ASP.NET è l'impossibilità di un'autenticazione con le API fornite con il Framework, qualora il browser di un utente abbia i cookie disabilitati.
Nella versione 2.0 finalmente è stato superato questo inconveniente in modo ottimale e sono stati introdotti nuovi attributi nelle impostazioni all'interno del web.config:
<authentication mode="Forms">
<forms name=".ASPXAUTH"
loginUrl="login.aspx"
protection="All|None|Ecryption|Validation"
timeout="30"
path="/"
requireSSL="true|false"
slidingExpiration="true|false"
defaultUrl="default.aspx"
cookieless="UseCookies|UseUri|AutoDetect|UseDeviceProfile" />
</authentication>Oltre a quelli già conosciuti come loginUrl o protection, ecco i nuovi attributi in dettaglio:
- defaultUrl: è la pagina di default richiamata da FormsAuthentication nel caso non sia stata specificata alcuna pagina di ritorno;
- slidingExpiration: una delle novità introdotte da ASP.NET 2.0, consente che l'autenticazione scada automaticamente dopo n minuti, anche se l'utente continua a visitare pagine nel sito;
- cookieless: permette di selezionare come mantenere l'autenticazione dell'utente.
Nell'attributo cookieless possiamo specificare quattro opzioni: UseCookies è il metodo tradizionale già presente in ASP.NET 1.x e l'autenticazione viene memorizzata in un cookie, mentre con UseUri, l'identificativo dell'utente viene inserito nell'url di pagina:

http://locahost/autentica2/(F(G9cCdsJeKDdLcIX4TLtEChADixmpQgCv5imp7yWlz_ HD6NXtfzMLma9F9wRr4CtvlOwsrGd6SUw5NJ1VNgVLlA2))/secret/Default.aspx L'opzione più potente è AutoDetect, perchè in questo caso sarà ASP.NET, verificando le capacità del client che ha richiamato la pagina, a decidere quale metodo utilizzare. Con un normale browser utilizzerà il cookie, nel caso di un browser con i cookie disabilitati invece imposterà in automatico la modalità UseUri. Questa opzione diventa comodissima per quei siti che necessitano dell'uso dell'autenticazione anche con browser senza cookie, per esempio siti di e-commerce o community.
Infine con l'opzione UseDeviceProfile la scelta avviene leggendo il tipo di browser dell'utente. In caso di un browser tradizionale saranno sempre usati i cookie, in casi di device senza cookie sarà inserito l'identificativo nell'URL di pagina.
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!