E' complicato da spiegare, ma se "smanetti" un po' con l'assembly DirectoryServices trovi tutte le risposte!
codice:
using System.DirectoryServices;
public bool DoLogin(string Domain, string Username, string Password)
{
DirectoryEntry entry = null;
DirectorySearcher search = null;
try
{
entry = new DirectoryEntry("LDAP://" + Domain, UserName, Password);
search = new DirectorySearcher(entry, "(SAMAccountName=" + UserName + ")");
search.FindOne();
return true;
}
catch(Exception ex)
{
return false;
}
finally
{
if(entry != null)
{
entry.Close();
entry.Dispose();
}
if(search != null)
search.Dispose();
}
}
Il Domain se è sempre lo stesso lo puoi "schiantare" nella funzione, ma passarlo da fuori può sempre tornare utile...
Username, se sei in ambiente web lo recuperi da Request.ServerVariables["LOGON_USER"], okkio che di solito è completo di dominio, quindi devi "splittare" per "\".
Il resto è cosa fatta...