System.DirectoryServices很慢

4

我正在尝试使用公司 AD 验证用户。这段代码可以工作,但需要超过 25-30 秒才能返回 DirectorySearcher 结果。我该怎么做来提高响应时间?

public bool ADauthentication(string userName,string password)
        {
            try
            {
                string domain = ConfigurationManager.AppSettings["DirectoryDomain"];
                string path = ConfigurationManager.AppSettings["DirectoryPath"];
                string domainAndUserName = domain + @"\" + userName;
                DirectoryEntry entry = new DirectoryEntry(path+"CN=Users,DC=myDomain,DC=com", userName, password);
                entry.AuthenticationType = AuthenticationTypes.Secure;
                DirectorySearcher search = new DirectorySearcher(entry);
                search.Filter = "(SAMAccountName=" + userName+")";
                search.PropertiesToLoad.Add("CN");
                SearchResult result = search.FindOne();
                if (result == null)
                {
                    return false;
                }
                return true;
            }
            catch(Exception ex)
            {
                log.Error($"Error: {ex.ToString()}");
                return false;
            }
        }

一种方法是减少目录中的用户数量。 - itsme86
2个回答

0

我在AD方面遇到了类似的问题,但通过缓存结果解决了这个问题。您也可以创建一些后台进程来同步AD和您的数据源。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接