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(); }
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); }