Home Page Home Page Tips & Tricks Come simulare la doppia autenticazione in ASP.NET

Come simulare la doppia autenticazione in ASP.NET


Il .NET Framework per le applicazioni web ha inserito un nuovo concetto di configurazione attraverso il file web.config.

Infatti attraverso questo file possiamo configurare la nostra applicazione web anche senza avere accesso diretto ad Internet Information Services.
Questo file ci permette di poter configurare e settare diverse cose, dalla cache, alla stringa di connessione di un db, alla gestione della Session ecc., ma sicuramente la sezione più interessante è quella dell’autenticazione e dei permessi.

Il web.config ha quattro tipi di autenticazione:

• Nessuna
• Windows (usata in ambito Intranet)
• Passport (si accede attraverso il Passport di Microsoft)
• Forms

Di solito l'ultimo tipo (Forms) è quello più usato perché ci permette di definire una nostra pagina di Login ogni volta che si prova ad accedere ad una file della nostra sezione protetta.

Quindi per proteggere i nostri file importanti dobbiamo usare un certo tipo di autenticazione, ma il web.config non permette di avere sullo stesso file due tipi di autenticazione(in alternativa si potrebbero creare più file web.config in una struttura gerarchica, ma la cosa mi piace molto poco)
questo comporterebbe che se vogliamo implementare l'autenticazione Forms, che anche nell'home page ci mostra la pagina di login.
Per ovviare a questo problema dobbiamo simulare una "doppia" autenticazione in questo modo:

Nella sezione authentication definiremo il tipo di autenticazione "Forms":

Codice .NET n°1
<authentication mode="Forms">
<forms name="miocookie"
loginUrl="Amministrazione/login.aspx"
protection="All" path="/"/>
</authentication>


Poi andremo a definire nella sezione authorization che possono entrare tutti i tipi di utente:

Codice .NET n°2
<authorization>
<allow users="*"/>
</authorization>


Infine per proteggere una nostra cartella personale andremo a creare una nuova sezione chiamata <location> dopo il tag <system.web>, e all'interno di questa sezione definiremo che gli utenti anonimi non possono entrare:

Codice .NET n°3
&lt;location path="Amministrazione"&gt;
&lt;system.web&gt;
&lt;authorization&gt;
&lt;deny users="?"/&gt;
&lt;/authorization&gt;
&lt;/system.web&gt;
&lt;/location&gt;


Così facendo tutti i nostri file all'interno della cartella Amministrazione saranno protetti attraverso l'autenticazione.

Conclusioni


Questo articolo vuole mostrare una delle tante funzionalità offerte dal Framework e possibile solo dopo un'accurata configurazione del web.config, inoltre ho riscontrato nei Newsgroups che questo è un problema molto comune degli sviluppatori ASP.NET.
Copyright © dotNetHell.it 2002-2019
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5