Get AD Users without LDAP C#
-
06-10-2020 - |
Question
How can i get all active directory users in SharePoint 2010 webpart without LDAP connection string?
Solution
If your SharePoint server is running in a different server, then it is not possible. You can get users inside the Active Directory server without LDAP connection like following.
using (var directoryInfo = new DirectoryEntry())
{
var userFindingfilter = "(&(objectClass=user)(objectCategory=person))";
var userProperties = new string[] { "title", "whenChanged", "displayName", "department", "sAMAccountName", "userPrincipalName", "manager" };
using (var directoryInfoSearch = new DirectorySearcher(directoryInfo, userFindingfilter, userProperties, SearchScope.Subtree))
{
var directoryEntryUserSearchResults = directoryInfoSearch.FindAll();
foreach (SearchResult searchResult in directoryEntryUserSearchResults)
{
}
}
}
Now when your are in different server, you must specify the LDAP connection string, user name & password
using (var directoryInfo = new DirectoryEntry(ConnectString, UserName, Password))
{
var userFindingfilter = "(&(objectClass=user)(objectCategory=person))";
var userProperties = new string[] { "title", "whenChanged", "displayName", "department", "sAMAccountName", "userPrincipalName", "manager" };
using (var directoryInfoSearch = new DirectorySearcher(directoryInfo, userFindingfilter, userProperties, SearchScope.Subtree))
{
var directoryEntryUserSearchResults = directoryInfoSearch.FindAll();
foreach (SearchResult searchResult in directoryEntryUserSearchResults)
{
}
}
}
OTHER TIPS
There are a number of ways to run a LDAP query in .NET. You can use DirectorySearcher from System.DirectoryServices
or SearchRequest from System.DirectoryServices.Protocol
.
using (var context = new PrincipalContext(ContextType.Domain, "yourdomain.com"))
{
using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
{
foreach (var result in searcher.FindAll())
{
DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
}
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange