// returns e.g. "somename" (for nameValue = CN=somename,OU=xxx,...) public static String GetCnValueUnescaped(String nameValue) { IADsPathname pathName = getADSPathname(null, null, nameValue); try { pathName.EscapedMode = (int)ADS_ESCAPE_MODE_ENUM.ADS_ESCAPEDMODE_OFF_EX; String leaf = pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_LEAF); if (leaf == null) // should not occur { return(null); } if (leaf.StartsWith("CN=", StringComparison.CurrentCultureIgnoreCase)) { return(leaf.Substring(3)); } else { LOG.Warn("Common Name cannot be found for DN {0}", nameValue); return(null); } } finally { Marshal.FinalReleaseComObject(pathName); } }
private void SetNextPath(DirectoryEntry entry, string dn) { IADsPathname pathCracker = (IADsPathname) new Pathname(); pathCracker.Set(entry.Path, 1); pathCracker.Set(dn, 4); entry.Path = pathCracker.Retrieve(5); }
/// <summary> /// Returns the leaf value of a distinguished name /// </summary> /// <param name="nameValue"></param> /// <returns>e.g. CN=somename</returns> public static String GetNameAsCN(String nameValue) { IADsPathname pathName = getADSPathname(null, null, nameValue); try { return(pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_LEAF)); } finally { Marshal.FinalReleaseComObject(pathName); } }
/// <summary> /// Gets the dn of the parent object of the object specified by childDn /// </summary> /// <param name="childDn">distinguished name of an object to retrieve the parent of</param> /// <returns>distinguished name of the parent of 'childDn' or null</returns> public static string GetParentDn(string childDn) { IADsPathname pathName = getADSPathname(null, null, childDn); try { return(pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_X500_PARENT)); } finally { Marshal.FinalReleaseComObject(pathName); } }
/// <summary> /// Returns a path string in the format: /// provider://servernameIfSpecified/path /// </summary> /// <param name="provider">provider (such as ldap or gc)</param> /// <param name="serverName">servername - optional</param> /// <param name="path">path to resource</param> /// <returns></returns> internal static String GetFullPath(string provider, string serverName, string path) { IADsPathname pathName = getADSPathname(provider, serverName, path); try { return(pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_X500)); } finally { Marshal.ReleaseComObject(pathName); } }
// returns e.g. "somename" (for nameValue = CN=somename,OU=xxx,...) public static String GetCnValueUnescaped(String nameValue) { IADsPathname pathName = getADSPathname(null, null, nameValue); pathName.EscapedMode = (int)ADS_ESCAPE_MODE_ENUM.ADS_ESCAPEDMODE_OFF_EX; String leaf = pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_LEAF); if (leaf == null) // should not occur { return(null); } if (leaf.StartsWith("CN=", StringComparison.CurrentCultureIgnoreCase)) { return(leaf.Substring(3)); } else { LOGGER.TraceEvent(TraceEventType.Warning, CAT_DEFAULT, "Common Name cannot be found for DN {0}", nameValue); return(null); } }
/// <summary> /// Returns the leaf value of a distinguished name /// </summary> /// <param name="nameValue"></param> /// <returns>e.g. CN=somename</returns> public static String GetNameAsCN(String nameValue) { IADsPathname pathName = getADSPathname(null, null, nameValue); return(pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_LEAF)); }
/// <summary> /// Gets the dn of the parent object of the object specified by childDn /// </summary> /// <param name="childDn">distinguished name of an object to retrieve the parent of</param> /// <returns>distinguished name of the parent of 'childDn' or null</returns> internal static string GetParentDn(string childDn) { IADsPathname pathName = getADSPathname(null, null, childDn); return(pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_X500_PARENT)); }
/// <summary> /// Returns a path string in the format: /// provider://servernameIfSpecified/path /// </summary> /// <param name="provider">provider (such as ldap or gc)</param> /// <param name="serverName">servername - optional</param> /// <param name="path">path to resource</param> /// <returns></returns> internal static String GetFullPath(string provider, string serverName, string path) { IADsPathname pathName = getADSPathname(provider, serverName, path); return(pathName.Retrieve((int)ADS_FORMAT_ENUM.ADS_FORMAT_X500)); }