Dopo il deliquio per i DVD di MSDN, torniamo in noi e vediamo un pò cosa ci dice questo pezzettino di codice:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation defaultLanguage="vb" debug="true" />
<customErrors mode="RemoteOnly" />
<authentication mode="Windows" />
<authorization>
<allow user="*" /> <!-- Allow all user -->
</authorization>
<trace enebled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<sessionState
mode="InProc"
stateConnectionString="tcpip=130.0.0.1;42424"
sqlConnectionString="data source=130.0.0.1;user id=sa;pwd="cookieless="false"
timeout="20"
/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
</system.web>
</configuration>
(N.D.R. vi dovrete accontentare oggi dell'aspetto estetico del post, ho IMHO sul portatile che in questo momento, anzi qualche ora fa ha iniziato il conto alla rovescia per formattarsi :D)
Tutto questo ed altro ancora lo troviamo nel Web.config ossia il file di configurazione della nostra applicazione.
Ok, solo questo direte voi, vediamo un pò i vari elementi
Sempre nel Web.config possiamo specificare i settaggi del nostro Web Services utilizzando i tag <authentication/> e <authorization/>
Insomma un bel rompicapo mentale. Comunque oggi ho iniziato a far qualche test ed ho visto che queste cose capitano spesso...
L'autenticazione
Oltre lo schema di autenticazione IIS i Web Services implementano policy di autenticazione utilizzando l'autenticazione del providers. Vediamo un pò cosa si può fare:
- Windows l'autenticazione di default <authentication mode="Windows" />
- Forms per utilizzare una form HTML di log-in direttamente dal client che sottopone le sue credenziali al Web Services per l'autenticazione.
- Passport per l'autenticazione centralizzata, ne parleremo meglio domani
- None <authentication mode="None" />
L'autorizzazione
Specificando il tag <authorization /> specifichiamo l'utente ed il ruolo che esso ha nell'accesso al Web Service. Vediamo un piccolo esempio che vale molto più di mille parole:
<authorization>
<allow user="Stellina" />
<allow role="Administrator" />
<deny users="*" />
</authorization>
Vedete la bellezza del codice che rispetto al linguaggio umano è autoparlante, lineare, semplice, senza troppi fronzoli, ciance,test etc... E' molto simile al linguaggio matematico: chiaro, conciso e sintetico. Ok, per chi non l'ha mai letto è astruso, ombroso, indecifrabile, complesso ma una volta imparati i simboli, i nessi, la grammatica etc insomma poi diventa chiaro e lampante ma non per questo meno intrigante, inebriante, affascinante e dunque non se ne può fare più a meno :).
Domani mattina vado a riprendermi il mio portatile, dopo la cura d'urto sarà bello nuovo nuovo, penso che si era proprio rotto le scatole di esser messo sotto torchio da me, e meno male che è una macchina altrimenti......, rimetto tutti i software, i vari CD di backup (tra ieri ed oggi ne ho fatti 4) e riprendiamo i nostri post IMHO estetici.
A domani