1: public List<string> GetGroupsMemberOF(string UserName)
2: {
3: List<string> Roles = new List<string>();
4: DirectoryEntry Entry = new DirectoryEntry("LDAP://dyware-research.com");
5: DirectorySearcher Search = new DirectorySearcher(Entry);
6: Search.Filter = String.Format("(&(objectCategory=person)(samAccountName={0}))", UserName);
7: Search.PropertiesToLoad.Add("memberOf");
8: SearchResult Result = Search.FindOne();
9: if (Result != null)
10: {
11: int i = 0;
12: foreach (var item in Result.Properties["memberOf"])
13: {
14: string[] RoleDetails = Result.Properties["memberOf"][i].ToString().Split(',');
15: if (RoleDetails.Length > 0)
16: {
17: if (RoleDetails[0].IndexOf("CN=") != -1)
18: RoleDetails[0] = RoleDetails[0].Replace("CN=", "");
19: Roles.Add(RoleDetails[0]);
20: }
21: else
22: Roles.Add(string.Empty);
23: i++;
24: }
25: }
26: else
27: throw new Exception("User not found in Active Directory.");
28:
29: return Roles;
30: }