Skip to main content

Get User in Active Directory


here i want to get User's Superior in AD (which is manager in AD hierarchy, see attached)

PS: you must set it at Organization Tab in User Properties in Active Directory User and Computers

C#

private static void GetManager(string _Username, string _Domain)
{
DirectoryContext context = new DirectoryContext(DirectoryContextType.Domain, _Domain);

DomainControllerCollection dcc = DomainController.FindAll(context);

foreach (DomainController dc in dcc)
{
DirectorySearcher ds;

using (dc)
using (ds = dc.GetDirectorySearcher())
{
ds.Filter = String.Format("(sAMAccountName={0})", _Username);

ds.PropertiesToLoad.Add("manager");

ds.PropertiesToLoad.Add("mail");

ds.SizeLimit = 1;

SearchResult sr = ds.FindOne();

if (sr != null)
{
try
{
string sSuperior = sr.Properties["manager"][0].ToString();
int iInit = sSuperior.IndexOf("=") + 1;
int iLast = sSuperior.IndexOf(",", iInit);

sSuperior = sSuperior.Substring(iInit, iLast - iInit);
myCC += myCC + sr.Properties["mail"][0].ToString() + ";";

Console.WriteLine(sSuperior);

GetManager(sSuperior, _Domain);

}
catch (Exception)
{
ds.Dispose();
}

}

}

}

}


until then

Comments

Popular posts from this blog

Crystal Report 2010 - Failed to load database information

"Failed to load database information" error when i try deploy my program with CR 2010 using TTX file as report definition this is because there is missing .dll, call "CRDB_FIELDDEF.DLL"..u need to manually copy the file to "C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86" folder then the report is loading again it said that TTX is old tech but i'm still using it because i don't need to connect the report to any DB, but until i found new one to replace :D check this link to read it [EDIT 25 Jan 2011] i think i'll using ADO.NET Dataset next time :D until then

Resolve Collation error in SQL Server

i often get this error when trying to JOIN some table Cannot resolve the collation conflict between "SQL_Latin1_General_CP850_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. u need to use COLLATION when performing the JOIN, something like this SELECT field1 FROM table1 INNER JOIN table2 ON table1.field3 COLLATE DATABASE_DEFAULT = table2.field4 COLLATE DATABASE_DEFAULT i found this when trying to JOIN, maybe it affect other areas..until i found one see u

Session timeout problem in IIS

Hi, Long time no post, i will try to post again since i came out searching a typical solution over and over again :D Now i'm gonna post about session. Since i got this from other link so here it is So I started looking into the IIS settings and came to know that i missed two things to change : Application pool’s Idle Time-out (minutes) Session state  – State server’s Time-out (seconds) Once I have changed above settings than after Session timeout worked. So after that I have made one checklist that can help us to validate Session timeout settings, here i am sharing it with you as well so that you will also get some benefits from it : Application Pool  – Advanced Settings Menu – Process Model – Idle Time-out (minutes) Sites –  Session State  – Cookie Settings – Time-out (minutes) If you are using  State Server  or  SQL Server  to manage your session (instead of InProcess), Here is the steps to follow :    ...