正因为如此,我们需要连接到使用LDAPS我们必须使用LdapConnection代替的DirectoryEntry LDAP服务器的事实。
这里是源代码:
SearchResponse response;
using (LdapConnection con = new LdapConnection(new LdapDirectoryIdentifier(Host, Port)))
{
if (IsSSL)
{
con.SessionOptions.SecureSocketLayer = true;
con.SessionOptions.VerifyServerCertificate =
(connection, certificate)
=> true;
}
con.Credential = new NetworkCredential(_username, _password);
con.AuthType = AuthType.Basic;
con.Bind();
if (logMessage != null)
logMessage("Connected to LDAP");
string sFilter = String.Format(
"(&(objectcategory=person)(objectclass=user){0}(!(userAccountControl:1.2.840.113556.1.4.803:=2)))",
filter
);
SearchRequest request = new SearchRequest("OU=Corp,DC=mydc,DC=com", sFilter, SearchScope.Subtree);
request.Attributes.Add(Resources.objectguid);
request.Attributes.Add(Resources.givenname);
request.Attributes.Add(Resources.sn);
request.Attributes.Add(Resources.initials);
request.Attributes.Add(Resources.samaccountname);
request.Attributes.Add(Resources.userprincipalname);
request.Attributes.Add(Resources.mail);
request.Attributes.Add(Resources.objectsid);
request.Attributes.Add(Resources.department);
request.Attributes.Add(Resources.company);
request.SizeLimit = 10;
response = (SearchResponse) con.SendRequest(request);
}
在源代码的执行(我们已经验证凭据,主机,端口等 - 使用外部第三方软件),我们得到以下异常:
大小超出上限
说明:在当前Web请求的执行过程中发生未处理的异常。 请检查堆栈跟踪有关该错误它起源于代码的详细信息和。
异常详细信息:System.DirectoryServices.Protocols.DirectoryOperationException:大小超出上限
源错误:
response = (SearchResponse) con.SendRequest(request);
[DirectoryOperationException: The size limit was exceeded] System.DirectoryServices.Protocols.LdapConnection.ConstructResponse(Int32
MESSAGEID,LdapOperation操作,ResultAll与resultType,时间跨度应为requestTimeout,布尔exceptionOnTimeOut)2385 System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest请求,时间跨度应为requestTimeout)499 System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest请求)50 UserSearchProvider .ADUserSearchProvider.QueryStore(UserSearchCriteriaCollection指标分析,动作
1 logMessage) in c:\Users\stemarie\Documents\Visual Studio 2012\Projects\Idealink.Modules\UserSearchProvider\UserSearchProvider\ADUserSearchProvider.cs:298 UserSearchProvider.UserSearchProvider.QueryAndSort(UserSearchCriteriaCollection criterias, Action
在C 1的LogMessage):\用户\ stemarie \文件\的Visual Studio 2012 \项目\ Idealink.Modules \ UserSearchProvider \ UserSearchProvider \ UserSearchProvider.cs:77 UserSearchProvider.UserSearchProvider.Search(UserSearchCriteriaCollection指标分析,动作1 logMessage) in c:\Users\stemarie\Documents\Visual Studio 2012\Projects\Idealink.Modules\UserSearchProvider\UserSearchProvider\UserSearchProvider.cs:33 UserSearchProvider.UserSearchService.Search(UserSearchCriteriaCollection criterias, Action
1 logMessage) in c:\Users\stemarie\Documents\Visual Studio 2012\Projects\Idealink.Modules\UserSearchProvider\UserSearchProvider\UserSearchProvider.cs:33 UserSearchProvider.UserSearchService.Search(UserSearchCriteriaCollection criterias, Action
1周的LogMessage)在C:\用户\ stemarie \文件\的Visual Studio 2012 \项目\ Idealink.Modules \ UserSearchProvider \ UserSearchProvider \ UserSearchService.cs:44 UserSearchProviderTest._Default.Page_Load(对象发件人,EventArgs e)如C:\用户\ stemarie \文件\的Visual Studio 2012 \项目\ Idealink.Modules \ UserSearchProvider \ UserSearchProviderTest \ Default.aspx.cs:28
这让我困惑的部分是,我们做指定的最大大小限制,我们不希望超过100项 - 我们要限制它。 但尚未库始终抛出即使我们指定的1的sizeLimit的错误。
有没有人有任何关于此问题的任何见解/建议吗? 我们非常接近得到这方面的工作,只是需要解决这个最后的问题。