我使用以下代码获取了我的用户的memberOf属性:
DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(connectionString));
search.Filter=string.Format("(&(sAMAccountName={0})(objectClass=user))",userName);
SearchResult result = search.FirndOne();
到目前为止一切顺利。 但是,然后我必须获取用户所属的每个组的cn值:我在memberOf属性的循环中执行此操作。
List<string> groupList = new List<string>();
DirectoryEntry user = result.GetDirectoryEntry();
foreach(string groupPath in user.Properties["memberOf"])
{
DirectoryEntry groupBinding = new DirectoryEntry("LDAP://"+groupPath);
DirectorySearcher groupSearch = new DirectorySearcher(groupBinding);
DirectoryEntry gorupEntry = groupSearch.FindOne().GetDirectoryEntry();
groupList.Add(groupEntry.Properties["cn"].Value.ToString()));
}
问题是当groupPath包含'/'字符时,groupSearch.FindOne()
会抛出异常。
如何转义/字符以便我可以搜索该组?