Quando sviluppiamo siti internet dove vengono aggiornati i contenuti, di solito si crea un’area riservata dove viene dato accesso ad almeno un utente con una determinata autorizzazione.
Se gli utenti che devono accedere a quest’area, sono qualche decina creiamo un form di registrazione e gestiamo tutto tramite un database. Se invece gli utenti sono pochi, peresempio da uno a 5, e non si devono cambiare le password, trovo molto utile inserire le credenziali all’interno del
web.config.
Questo tipo di approccio da' molta flessibilità all'applicazione, infatti la gestione della sicurezza viene centralizzata e delegata tutta al file web.config.
Per chi non lo sapesse le informazioni all’interno del web.config non possono essere lette perché se si prova ad accedere via http il processo
ASP.NET ritorna un errore
403 che dice che non è possibile accedere a tale risorsa quindi la sicurezza è salva.
Vediamo come implementare quanto detto. Nel web.config dobbiamo aggiungere il nodo
<credentials> all'interno del nodo
<forms><authentication mode="Forms">
<forms name="miocookie" loginUrl="Amministrazione/login.aspx" protection="All" path="/">
<credentials passwordFormat="Clear">
<user name="user1" password="password1" />
<user name="user2" password="password2" />
<user name="user3" password="password3" />
</credentials>
</forms>
</authentication>
Il nodo
credentials ha un'attributo
passwordFormat che ha tre possibili valori
1. Clear nessun tipo di crittografia
2. MD5 crittografiacon l’algoritmo MD5
3. SHA1 crittografiacon l’algoritmo SHA1
Dopo aver aggiunto queste righe nel nostro form di autenticazione sfruttiamo la classe
FormsAuthentication che con il metodo
Authenticate verifica la corrispondenza username/password confrontandola con le credenziali contenute nel file web.config.
If (FormsAuthentication.Authenticate(txtUser.Text, txtPassword.Text))
{
FormsAuthentication.RedirectFromLoginPage(txtUser.Text,false);
}
Una volta che le credenziali inserite vengono verificate con il contenuto del web.config e corrispondono si verrà rediretti alla pagina protetta richiesta.