Пример #1
0
        public TokenParameters(string ParamsString) : this()
        {
            ParamsString = Utils.FixQuotes(ParamsString);

            string[] KeyValueStrings = ParamsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var KV in KeyValueStrings)
            {
                if (KV.Contains("="))
                {
                    string[] KVTokens = KV.Split(new[] { '=' });

                    if (KVTokens.Length > 2)
                    {
                        throw new Exception(string.Format("Token parameter string malformed ({0})", ParamsString));
                    }

                    Params.Add(new TokenParameter(KVTokens[0].Trim(), KVTokens[1].Trim()));
                }
                else
                {
                    Params.Add(new TokenParameter(KV.Trim(), "true"));
                }
            }

            // Last defined item takes precedence
            Params.Reverse();
        }
Пример #2
0
 public static bool IsNormal(Request Req)
 {
     try
     {
         if (Req.BodyLength == 0)
         {
             return(true);
         }
         if (Req.Body.Count == 0)
         {
             return(false);
         }
         string   BodyString = Req.BodyString;
         string[] KVs        = Req.BodyString.Split('&');
         if (KVs.Length == 0)
         {
             return(false);
         }
         bool EqualFound = false;
         foreach (string KV in KVs)
         {
             if (KV.Length == 0)
             {
                 return(false);
             }
             if (KV.Contains("="))
             {
                 EqualFound = true;
             }
             string[] kv = KV.Split('=');
             if (kv.Length == 0)
             {
                 return(false);
             }
             if (!Regex.IsMatch(kv[0], @"^[A-Za-z0-9_\-\.%()]+$"))
             {
                 return(false);
             }
         }
         if (!EqualFound)
         {
             return(false);
         }
     }
     catch
     {
         return(true);
     }
     return(true);
 }
Пример #3
0
        public void init()
        {
            KeyValue = new Dictionary <string, string>();
            String FContent = System.IO.File.ReadAllText(FileName, Encoding.Default);

            String[] KVList = FContent.Split(';');
            foreach (String KV in KVList)
            {
                try
                {
                    String K = KV.Split('=')[0].Trim();
                    if (K.Contains("#"))
                    {
                        continue;
                    }
                    String V = KV.Split('=')[1].Trim();
                    KeyValue.Add(K, V);
                }
                catch (Exception)
                {
                    // throw e;
                }
            }
        }