コード例 #1
0
ファイル: Dn.cs プロジェクト: aelveborn/njupiter
		private Dn(string dnString, EscapeChars escapeChars) {
			if(dnString == null) {
				throw new ArgumentNullException("dnString");
			}
			this.escapeChars = escapeChars;
			rdns = ParseDn(dnString);
		}
コード例 #2
0
ファイル: RdnComponent.cs プロジェクト: pykarun/njupiter
 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)));
 }
コード例 #3
0
 private Dn(string dnString, EscapeChars escapeChars)
 {
     if (dnString == null)
     {
         throw new ArgumentNullException("dnString");
     }
     this.escapeChars = escapeChars;
     rdns             = ParseDn(dnString);
 }
コード例 #4
0
ファイル: DN.cs プロジェクト: data-platform/ManagementServer
        /// <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();
        }
コード例 #5
0
ファイル: Rdn.cs プロジェクト: aelveborn/njupiter
		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();
		}
コード例 #6
0
ファイル: Dn.cs プロジェクト: aelveborn/njupiter
		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();
		}
コード例 #7
0
ファイル: Rdn.cs プロジェクト: pykarun/njupiter
        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());
        }
コード例 #8
0
        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());
        }
コード例 #9
0
        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());
        }
コード例 #10
0
ファイル: RdnComponent.cs プロジェクト: pykarun/njupiter
        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());
        }
コード例 #11
0
 /// <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);
     }
 }
コード例 #12
0
        /// <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();
        }
コード例 #13
0
ファイル: RDNComponent.cs プロジェクト: picrap/DNParser
 /// <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)}";
     }
 }
コード例 #14
0
ファイル: DN.cs プロジェクト: data-platform/ManagementServer
        private DN(RDNList rdnList, EscapeChars escapeChars)
        {
            this.escapeChars = escapeChars;

            rDNs = rdnList;

            GenerateHashCode();
        }
コード例 #15
0
ファイル: DN.cs プロジェクト: data-platform/ManagementServer
        /// <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();
        }