“A referral was returned from the server” exception when accessing AD from C#

后端 未结 8 1437
不知归路
不知归路 2020-12-01 18:08
DirectoryEntry oDE = new DirectoryEntry(\"LDAP://DC=Test1,DC=Test2,DC=gov,DC=lk\");

using (DirectorySearcher ds = new DirectorySearcher(oDE))
{
    ds.PropertiesToL         


        
8条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-01 18:32

    This is the answer for the question.Reason for the cause is my LDAP string was wrong.

        try
        {
            string adServer = ConfigurationManager.AppSettings["Server"];
            string adDomain = ConfigurationManager.AppSettings["Domain"];
            string adUsername = ConfigurationManager.AppSettings["AdiminUsername"];
            string password = ConfigurationManager.AppSettings["Password"];
            string[] dc = adDomain.Split('.');
            string dcAdDomain = string.Empty;
    
            foreach (string item in dc)
            {
                if (dc[dc.Length - 1].Equals(item))
                    dcAdDomain = dcAdDomain + "DC=" + item;
                else
                    dcAdDomain = dcAdDomain + "DC=" + item + ",";
            }
    
            DirectoryEntry de = new DirectoryEntry("LDAP://" + adServer + "/CN=Users," + dcAdDomain, adUsername, password);
    
            DirectorySearcher ds = new DirectorySearcher(de);
    
            ds.SearchScope = SearchScope.Subtree;
    
            ds.Filter = "(&(objectClass=User)(sAMAccountName=" + username + "))";
    
            if (ds.FindOne() != null)
                return true;
        }
        catch (Exception ex)
        {
            ExLog(ex);
        }
        return false;
    

提交回复
热议问题