// parse the cookie name and value public bool parseCookieNameValue(string ckNameValueExpr, out pairItem pair) { bool parsedOK = false; if (ckNameValueExpr == "") { pair.key = ""; pair.value = ""; parsedOK = false; } else { ckNameValueExpr = ckNameValueExpr.Trim(); int equalPos = ckNameValueExpr.IndexOf('='); if (equalPos > 0) // is valid expression { pair.key = ckNameValueExpr.Substring(0, equalPos); pair.key = pair.key.Trim(); if (isValidCookieName(pair.key)) { // only process while is valid cookie field pair.value = ckNameValueExpr.Substring(equalPos + 1); pair.value = pair.value.Trim(); parsedOK = true; } else { pair.key = ""; pair.value = ""; parsedOK = false; } } else { pair.key = ""; pair.value = ""; parsedOK = false; } } return parsedOK; }
例 7.7. parseCookieNameValue 的使用范例
//string[] expressions = cookieStr.Split(";".ToCharArray(),StringSplitOptions.RemoveEmptyEntries); //refer: http://msdn.microsoft.com/en-us/library/b873y76a.aspx string[] expressions = cookieStr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); //get cookie name and value pairItem pair = new pairItem(); if (parseCookieNameValue(expressions[0], out pair)) {