Hello Friends,
I am trying to get member list from group in active directory but I am not getting list from AD so far.
The Code is,
GroupPrincipal gp = GroupPrincipal.FindByIdentity("PrincipalContext","GroupName")
I am getting null value only from this code.
Can any one help me !!!
Thanks
Loading
RahulPosted Aug 22, 2014, 10:31 AM
2.using System.DirectoryServices;
3.call the method passing the arguments:
string searchItem=textBox1.Text;//User to search
GetAssociateInfo(userName,password,domain,searchItem);
4.Define the below :
private bool GetAssociateInfo(string userName,
string password, string domain, string searchItem)
{
bool authentic = false;
try
{
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain,
userName, password);
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = string.Format("(&(objectCategory=person)(anr={0}))", searchItem);
searcher.PropertiesToLoad.Add("givenName"); // first name
searcher.PropertiesToLoad.Add("sn"); // last name
searcher.PropertiesToLoad.Add("mail");
searcher.PropertiesToLoad.Add("userPrincipalName");
searcher.PropertiesToLoad.Add("telephoneNumber");
searcher.PropertiesToLoad.Add("title");
searcher.PropertiesToLoad.Add("mobile");
searcher.PropertiesToLoad.Add("department");
searcher.PropertiesToLoad.Add("manager");
searcher.PropertiesToLoad.Add("employeeBirthDate");
SearchResultCollection results;
results = searcher.FindAll();
List
if (results.Count > 0)
{
foreach (SearchResult sr in results)
{
ADDetails aDDetails = new ADDetails();
if (sr.Properties["mail"].Count > 0)
{
aDDetails.email = sr.Properties["mail"][0].ToString();
}
if (sr.Properties["givenName"].Count > 0)
{
aDDetails.First_name = sr.Properties["givenName"][0].ToString();
}
if (sr.Properties["sn"].Count > 0)
{
aDDetails.Last_name = sr.Properties["sn"][0].ToString();
}
if (sr.Properties["title"].Count > 0)
{
aDDetails.Title = sr.Properties["title"][0].ToString();
}
if (sr.Properties["userPrincipalName"].Count > 0)
{
if (sr.Properties["userPrincipalName"][0].ToString().ToUpper().Contains("@CTS.COM") || sr.Properties["userPrincipalName"][0].ToString().ToUpper().Contains("@cognizant.com"))
{
aDDetails.User_ID = sr.Properties["userPrincipalName"][0].ToString().Remove(6, sr.Properties["userPrincipalName"][0].ToString().Length - 6);
}
else
{
aDDetails.User_ID = sr.Properties["userPrincipalName"][0].ToString();
}
}
if (sr.Properties["telephoneNumber"].Count > 0)
{
aDDetails.Vnet = sr.Properties["telephoneNumber"][0].ToString();
}
if (sr.Properties["mobile"].Count > 0)
{
aDDetails.Mobile = sr.Properties["mobile"][0].ToString();
}
if (sr.Properties["department"].Count > 0)
{
aDDetails.Department = sr.Properties["department"][0].ToString();
}
if (sr.Properties["manager"].Count > 0)
{
aDDetails.Manager = sr.Properties["manager"][0].ToString();
int index = sr.Properties["manager"][0].ToString().IndexOf(",OU=");
string manager = sr.Properties["manager"][0].ToString().Substring(3, index - 3);
if (manager.Contains(@"\"))
{
int i = manager.IndexOf(@"\");
manager = manager.Remove(i, 1);
}
aDDetails.Manager = manager;
}
listSearchResult.Add(aDDetails);
}
object nativeObject = entry.NativeObject;
authentic = true;
var source = new BindingSource();
source.DataSource = listSearchResult;
dataGridView1.DataSource = source;
if (dataGridView1.RowCount > 0)
{
dataGridView1.Show();
label4.Text = "Total Result Found : " + (dataGridView1.RowCount - 1).ToString();
}
else
{
MessageBox.Show("No result found!!");
}
}
}
catch (DirectoryServicesCOMException) { }
return authentic;
}
Guest UserPosted Jul 22, 2014, 8:37 AM
User 1 I assume is user in your system with password123. First it looks the directoryentry and then filter that user 1
Now results should contain the data for user 1
twitter @sumitjolly