代码之家  ›  专栏  ›  技术社区  ›  SqlRyan

当DN包含“/”时,“new DirectoryEntry(districtedName为字符串)”不起作用

  •  2
  • SqlRyan  · 技术社区  · 16 年前

    我有以下代码将districtedName转换为sAMAccountName:

    Dim de As New DirectoryEntry("LDAP://" & stringDN)
    Return CType(de.Properties("samaccountname")(0), String)
    

    它对我通过的每个DN都很有效,除了一个。我们的域上有一个AD组,其中有一个“/”,称之为“程序员/DBA”。该组的DN为“程序员/DBA,OU=用户组,DC=mydomain,DC=本地”。当我尝试使用这个DN作为上面的字符串DN时,我得到了一个COMException“未知错误(0x800050000)”。

    我的域中的每个其他组/用户都工作正常,我在测试域上复制了这个问题,重命名组使其不包含“/”可以解决这个问题。然而,我无法在生产中做到这一点,所以我陷入了困境。

    我能以某种方式逃脱这个“/”吗?我必须相信有一个解决方案,这样我就可以正确地获得这个组的属性。

    1 回复  |  直到 16 年前
        1
  •  4
  •   tvanfosson    16 年前

    你试过做:

    Dim de As New DirectoryEntry("LDAP://" & stringDN.Replace( "/", "\/" ))
    Return CType(de.Properties("samaccountname")(0), String)
    
    推荐文章