带有'/'字符的AD组名称正在炸毁我的绑定

时间:2009-05-22 14:49:22

标签: .net directoryservices

我使用以下代码获取了我的用户的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()会抛出异常。

如何转义/字符以便我可以搜索该组?

1 个答案:

答案 0 :(得分:1)

使用反斜杠来逃避/

信用:http://www.rlmueller.net/CharactersEscaped.htm