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...