Spesso, specie all'interno di intranet, è necessario integrare l'applicazione web con un dominio in Active Directory già esistente, per evitare il proliferare di password e gestire l'accesso alle applicazioni da un punto centralizzato.
In casi come questi è possibile continuare ad utilizzare la Forms Authentication, come spiegato in diversi articoli pubblicati in passato, aggiungendo però l'autenticazione basata su Active Directory.
Prendendo spunto dallo script #705, è possibile variare la pagina di login in modo che contenga una funzione come la seguente, che si occupa di effettuare il login via Active Directory:
private bool Login(string username, String pwd)
{
// percorso AD - leggere da web.config
string path = "LDAP://server2003/DC=bochicchio,DC=local";
// effettuo una ricerca in Active Directory
try
{
DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(path, username, password));
}
catch()
{
// se c'è un errore, allora non ha passato il login
search.Dispose();
return false;
}
// cerca utente
search.Filter = "(&(objectclass=user)(objectCategory=person)(SAMAccountName=" + username + "))";
// proprietà richieste
search.PropertiesToLoad.Add("cn"); // nome reale
// verifico che l'utente ci sia
SearchResultCollection results = search.FindOne();
if (result == null)
return false;
search.Dispose();
// imposto il vero nome in una variabile
Name = result.Properties["cn"][0].ToString();
// se arriva qui, è stato autenticato
return true;
}Il resto del codice è lo stesso da utilizzare per la Forms Authentication. Per approfondimenti:
http://www.aspitalia.com/articoli/articoli_ricerca_forms_authentication.aspx
http://www.aspitalia.com/liste/usag/script_ricerca_forms_authentication.aspx
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


