Hi,
I have a textbox where a UserName is type then I do a search on Active Directory for that user.
Below is my code, the problem I have is that each SearchResult in the SearchResultCollection is not displayed but instead it shows me the last SearchResult duplicated by the number of results in my collection. What am I doing wrong?
<font size=2>
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>private</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>List</font></font><font size=2><</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>> GetADUser(</font><font color="#0000ff" size=2><font color="#0000ff" size=2>string</font></font><font size=2> UserName)
{
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2> myUser = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>();
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>List</font></font><font size=2><</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>> lstMyUsers = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>List</font></font><font size=2><</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>>();
myUser.Name = UserName.ToString();
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>DirectoryEntry</font></font><font size=2> entry = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>DirectoryEntry</font></font><font size=2>();
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>DirectorySearcher</font></font><font size=2> search = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>DirectorySearcher</font></font><font size=2>(entry);
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ResultPropertyCollection</font></font><font size=2> propcol;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>int</font></font><font size=2> intcounter;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>string</font></font><font size=2> DisplayName = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, SAMAccountName = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, Mail = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, UserPrincipleName = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, Description = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, Division = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, TelephoneNumber = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, FacsimileTelephoneNumber = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>;
search.Filter = </font><font color="#a31515" size=2><font color="#a31515" size=2>"(&(objectClass=user)(&(objectcategory=person)(samaccountname="</font></font><font size=2> + UserName + </font><font color="#a31515" size=2><font color="#a31515" size=2>"*)))"</font></font><font size=2>;
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"displayname"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"SAMAccountName"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"Mail"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"Description"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"TelephoneNumber"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"FacsimileTelephoneNumber"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"Division"</font></font><font size=2>);
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>SearchResultCollection</font></font><font size=2> results = search.FindAll();
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>foreach</font></font><font size=2> (</font><font color="#2b91af" size=2><font color="#2b91af" size=2>SearchResult</font></font><font size=2> iresult </font><font color="#0000ff" size=2><font color="#0000ff" size=2>in</font></font><font size=2> results)
{
<blockquote dir=ltr style="margin-right:0px
</font><font color="#0000ff" size=2><font color="#0000ff" size=2> foreach</font></font><font size=2> (</font><font color="#0000ff" size=2><font color="#0000ff" size=2>string</font></font><font size=2> PropertyName </font><font color="#0000ff" size=2><font color="#0000ff" size=2>in</font></font><font size=2> iresult.Properties.PropertyNames)
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>
foreach</font></font><font size=2> (</font><font color="#2b91af" size=2><font color="#2b91af" size=2>Object</font></font><font size=2> key </font><font color="#0000ff" size=2><font color="#0000ff" size=2>in</font></font><font size=2> iresult.GetDirectoryEntry().Properties[PropertyName])
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>try </font></font><font size=2>
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>switch</font></font><font size=2> (PropertyName.ToUpper())
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"DISPLAYNAME"</font></font><font size=2>:
DisplayName = key.ToString();
myUser.Name = DisplayName;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"SAMACCOUNTNAME"</font></font><font size=2>:
SAMAccountName = key.ToString();
myUser.DomainUserName = SAMAccountName;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"MAIL"</font></font><font size=2>:
Mail = key.ToString();
myUser.EmailAddress = Mail;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"DESCRIPTION"</font></font><font size=2>:
Description = key.ToString();
myUser.JobDescription = Description;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"TELEPHONENUMBER"</font></font><font size=2>:
TelephoneNumber = key.ToString();
myUser.TelephoneNumber = TelephoneNumber;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"FACSIMILETELEPHONENUMBER"</font></font><font size=2>:
FacsimileTelephoneNumber = key.ToString();
myUser.FaxNumber = FacsimileTelephoneNumber;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"DIVISION"</font></font><font size=2>:
Division = key.ToString();
myUser.Division = Division;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>; </blockquote>
}
}
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>catch</font></font><font size=2> { }
}
}
lstMyUsers.Add(myUser);
}
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>return</font></font><font size=2> lstMyUsers;
}
</font><hr size="1" align="left" width="25% Wendy B
View the full article
I have a textbox where a UserName is type then I do a search on Active Directory for that user.
Below is my code, the problem I have is that each SearchResult in the SearchResultCollection is not displayed but instead it shows me the last SearchResult duplicated by the number of results in my collection. What am I doing wrong?
<font size=2>
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>private</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>List</font></font><font size=2><</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>> GetADUser(</font><font color="#0000ff" size=2><font color="#0000ff" size=2>string</font></font><font size=2> UserName)
{
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2> myUser = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>();
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>List</font></font><font size=2><</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>> lstMyUsers = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>List</font></font><font size=2><</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ADUser</font></font><font size=2>>();
myUser.Name = UserName.ToString();
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>DirectoryEntry</font></font><font size=2> entry = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>DirectoryEntry</font></font><font size=2>();
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>DirectorySearcher</font></font><font size=2> search = </font><font color="#0000ff" size=2><font color="#0000ff" size=2>new</font></font> <font color="#2b91af" size=2><font color="#2b91af" size=2>DirectorySearcher</font></font><font size=2>(entry);
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>ResultPropertyCollection</font></font><font size=2> propcol;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>int</font></font><font size=2> intcounter;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>string</font></font><font size=2> DisplayName = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, SAMAccountName = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, Mail = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, UserPrincipleName = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, Description = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, Division = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, TelephoneNumber = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>, FacsimileTelephoneNumber = </font><font color="#a31515" size=2><font color="#a31515" size=2>""</font></font><font size=2>;
search.Filter = </font><font color="#a31515" size=2><font color="#a31515" size=2>"(&(objectClass=user)(&(objectcategory=person)(samaccountname="</font></font><font size=2> + UserName + </font><font color="#a31515" size=2><font color="#a31515" size=2>"*)))"</font></font><font size=2>;
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"displayname"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"SAMAccountName"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"Mail"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"Description"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"TelephoneNumber"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"FacsimileTelephoneNumber"</font></font><font size=2>);
search.PropertiesToLoad.Add(</font><font color="#a31515" size=2><font color="#a31515" size=2>"Division"</font></font><font size=2>);
</font><font color="#2b91af" size=2><font color="#2b91af" size=2>SearchResultCollection</font></font><font size=2> results = search.FindAll();
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>foreach</font></font><font size=2> (</font><font color="#2b91af" size=2><font color="#2b91af" size=2>SearchResult</font></font><font size=2> iresult </font><font color="#0000ff" size=2><font color="#0000ff" size=2>in</font></font><font size=2> results)
{
<blockquote dir=ltr style="margin-right:0px
</font><font color="#0000ff" size=2><font color="#0000ff" size=2> foreach</font></font><font size=2> (</font><font color="#0000ff" size=2><font color="#0000ff" size=2>string</font></font><font size=2> PropertyName </font><font color="#0000ff" size=2><font color="#0000ff" size=2>in</font></font><font size=2> iresult.Properties.PropertyNames)
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>
foreach</font></font><font size=2> (</font><font color="#2b91af" size=2><font color="#2b91af" size=2>Object</font></font><font size=2> key </font><font color="#0000ff" size=2><font color="#0000ff" size=2>in</font></font><font size=2> iresult.GetDirectoryEntry().Properties[PropertyName])
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>try </font></font><font size=2>
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>switch</font></font><font size=2> (PropertyName.ToUpper())
{
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"DISPLAYNAME"</font></font><font size=2>:
DisplayName = key.ToString();
myUser.Name = DisplayName;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"SAMACCOUNTNAME"</font></font><font size=2>:
SAMAccountName = key.ToString();
myUser.DomainUserName = SAMAccountName;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"MAIL"</font></font><font size=2>:
Mail = key.ToString();
myUser.EmailAddress = Mail;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"DESCRIPTION"</font></font><font size=2>:
Description = key.ToString();
myUser.JobDescription = Description;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"TELEPHONENUMBER"</font></font><font size=2>:
TelephoneNumber = key.ToString();
myUser.TelephoneNumber = TelephoneNumber;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"FACSIMILETELEPHONENUMBER"</font></font><font size=2>:
FacsimileTelephoneNumber = key.ToString();
myUser.FaxNumber = FacsimileTelephoneNumber;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>case</font></font> <font color="#a31515" size=2><font color="#a31515" size=2>"DIVISION"</font></font><font size=2>:
Division = key.ToString();
myUser.Division = Division;
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>break</font></font><font size=2>; </blockquote>
}
}
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>catch</font></font><font size=2> { }
}
}
lstMyUsers.Add(myUser);
}
</font><font color="#0000ff" size=2><font color="#0000ff" size=2>return</font></font><font size=2> lstMyUsers;
}
</font><hr size="1" align="left" width="25% Wendy B
View the full article