代码之家  ›  专栏  ›  技术社区  ›  Ralph Shillington

带有“/”字符的广告组名称正在破坏我的绑定

  •  0
  • Ralph Shillington  · 技术社区  · 15 年前

    我使用以下代码获取用户的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 回复  |  直到 15 年前
        1
  •  1
  •   Jeff    15 年前

    使用反斜杠来转义/

    学分: http://www.rlmueller.net/CharactersEscaped.htm