// 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))
{