private Dn(string dnString, EscapeChars escapeChars) { if(dnString == null) { throw new ArgumentNullException("dnString"); } this.escapeChars = escapeChars; rdns = ParseDn(dnString); }
public string ToString(EscapeChars escapeChars) { if (componentValueType == RdnValueType.HexValue) { return(string.Format("{0}={1}", componentType, componentValue)); } return(string.Format("{0}={1}", componentType, EscapeValue(componentValue, escapeChars))); }
private Dn(string dnString, EscapeChars escapeChars) { if (dnString == null) { throw new ArgumentNullException("dnString"); } this.escapeChars = escapeChars; rdns = ParseDn(dnString); }
/// <summary> /// Constructs a new DN object based on a string representation of an LDAP distinguished name. /// </summary> /// <param name="dnString">a string representation of a distinguished name</param> /// <param name="escapeChars">the categories of special characters to be escaped when the DN is printed as a string</param> public DN(string dnString, EscapeChars escapeChars) { if (dnString == null) { throw new ArgumentNullException("dnString"); } this.escapeChars = escapeChars; ParseDN(dnString); GenerateHashCode(); }
public string ToString(EscapeChars escapeChars) { var returnValue = new StringBuilder(); foreach(var component in components) { returnValue.Append(component.ToString(escapeChars)); returnValue.Append("+"); } // Get rid of the last plus sign if(returnValue.Length > 0) returnValue.Length--; return returnValue.ToString(); }
private string ToString(EscapeChars chars) { var returnValue = new StringBuilder(); foreach(var rdn in Rdns) { returnValue.Append(rdn.ToString(chars)); returnValue.Append(","); } // Remove the trailing comma if(returnValue.Length > 0) returnValue.Length--; return returnValue.ToString(); }
public string ToString(EscapeChars escapeChars) { var returnValue = new StringBuilder(); foreach (var component in components) { returnValue.Append(component.ToString(escapeChars)); returnValue.Append("+"); } // Get rid of the last plus sign if (returnValue.Length > 0) { returnValue.Length--; } return(returnValue.ToString()); }
private string ToString(EscapeChars chars) { var returnValue = new StringBuilder(); foreach (var rdn in Rdns) { returnValue.Append(rdn.ToString(chars)); returnValue.Append(","); } // Remove the trailing comma if (returnValue.Length > 0) { returnValue.Length--; } return(returnValue.ToString()); }
private static string EscapeSpecialChars(string text) { var builder = new StringBuilder(text.Length << 1); for (int index = 0; index < text.Length; ++index) { var c = text[index]; if (char.IsWhiteSpace(c)) { builder.Append(' '); } else { if (EscapeChars.Contains(c)) { builder.Append('\\'); } builder.Append(c); } } return(builder.ToString()); }
private static string EscapeValue(string s, EscapeChars escapeChars) { var returnValue = new StringBuilder(); for (var i = 0; i < s.Length; i++) { if (Rdn.IsSpecialChar(s[i]) || ((i == 0 || i == s.Length - 1) && s[i] == ' ')) { if ((escapeChars & EscapeChars.SpecialChars) != EscapeChars.None) { returnValue.Append('\\'); } returnValue.Append(s[i]); } else if (s[i] < 32 && ((escapeChars & EscapeChars.ControlChars) != EscapeChars.None)) { returnValue.AppendFormat("\\{0:X2}", (int)s[i]); } else if (s[i] >= 128 && ((escapeChars & EscapeChars.MultibyteChars) != EscapeChars.None)) { var bytes = Encoding.UTF8.GetBytes(new[] { s[i] }); foreach (var b in bytes) { returnValue.AppendFormat("\\{0:X2}", b); } } else { returnValue.Append(s[i]); } } return(returnValue.ToString()); }
/// <summary> /// Returns a string that represents the current RDNComponent. /// </summary> /// <param name="escapeChars">the categories of characters to be escaped</param> /// <returns>a string that represents the current RDNComponent</returns> public string ToString(EscapeChars escapeChars) { if (this.componentValueType == RDNValueType.HexValue) { return this.componentType + "=" + this.componentValue; } else { return this.componentType + "=" + EscapeValue(this.componentValue, escapeChars); } }
/// <summary> /// Takes an input string and escapes the specified categories of characters. /// </summary> /// <param name="s">the input string</param> /// <param name="escapeChars">the categories of characters to escape</param> /// <returns>an escaped string</returns> public static string EscapeValue(string s, EscapeChars escapeChars) { StringBuilder ReturnValue = new StringBuilder(); for(int i = 0; i < s.Length; i++) { if (RDN.IsSpecialChar(s[i]) || ((i == 0 || i == s.Length - 1) && s[i] == ' ')) { if ((escapeChars & EscapeChars.SpecialChars) != EscapeChars.None) ReturnValue.Append('\\'); ReturnValue.Append(s[i]); } else if (s[i] < 32 && ((escapeChars & EscapeChars.ControlChars) != EscapeChars.None)) { ReturnValue.AppendFormat("\\{0:X2}", (int)s[i]); } else if (s[i] >= 128 && ((escapeChars & EscapeChars.MultibyteChars) != EscapeChars.None)) { byte[] Bytes = Encoding.UTF8.GetBytes(new char[]{s[i]}); foreach (byte b in Bytes) { ReturnValue.AppendFormat("\\{0:X2}", b); } } else { ReturnValue.Append(s[i]); } } return ReturnValue.ToString(); }
/// <summary> /// Returns a string that represents the current RDNComponent. /// </summary> /// <param name="escapeChars">the categories of characters to be escaped</param> /// <returns>a string that represents the current RDNComponent</returns> public string ToString(EscapeChars escapeChars) { if (ComponentValueType == RDNValueType.HexValue) { return $"{ComponentType}={ComponentValue}"; } else { return $"{ComponentType}={EscapeValue(ComponentValue, escapeChars)}"; } }
private DN(RDNList rdnList, EscapeChars escapeChars) { this.escapeChars = escapeChars; rDNs = rdnList; GenerateHashCode(); }
/// <summary> /// Returns a string that represents the current DN. /// </summary> /// <param name="escapeChars">the categories of characters to be escaped</param> /// <returns>a string that represents the current DN</returns> public string ToString(EscapeChars escapeChars) { StringBuilder ReturnValue = new StringBuilder(); foreach (RDN rdn in RDNs) { ReturnValue.Append(rdn.ToString(escapeChars)); ReturnValue.Append(","); } // Remove the trailing comma if (ReturnValue.Length > 0) ReturnValue.Length--; return ReturnValue.ToString(); }