Used Namespaces

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Web;

Usage of Multiple values Cookie

Dictionary<string, string> keyVal = new Dictionary<string, string>();
keyVal.Add("FirstName", "Lajapathy");
keyVal.Add("LastName", "Arun");

StateManagement stateManagement = new StateManagement();
stateManagement.SetMultipleUsingSingleKeyCookies("Data", keyVal);
keyVal = stateManagement.GetMultipleUsingSingleKeyCookies("Data");

Creating Http request
public static HttpRequest GetHttpRequest()
{
return HttpContext.Current.Request;
}

Creating http response
public static HttpResponse GetHttpResponse()
{
return HttpContext.Current.Response;
}

Getting single value from the cookie
public string GetIndividualCookies(string cookieKey)
{
return GetHttpRequest().Cookies[cookieKey].Value;
}

Setting single value to the cookie
public void SetIndividualCookies(string name, string value)
{
GetHttpResponse().Cookies[name].Value = value;
}

Getting multiple values from single cookie
public Dictionary<string, string> GetMultipleUsingSingleKeyCookies(string cookieName)
{

//creating dic to return as collection.
Dictionary<string, string> dicVal = new Dictionary<string, string>();

//Check whether the cookie available or not.
if (GetHttpRequest().Cookies[cookieName] != null)
{

//Creating a cookie.
HttpCookie cok = GetHttpRequest().Cookies[cookieName];

if (cok != null)
{
//Getting multiple values from single cookie.
NameValueCollection nameValueCollection = cok.Values;

//Iterate the unique keys.
foreach (string key in nameValueCollection.AllKeys)
{
dicVal.Add(key, cok[key]);
}
}
}
return dicVal
}

Setting multiple values to the single cookie
public void SetMultipleUsingSingleKeyCookies(string cookieName, Dictionary<string, string> dic)
{
if (GetHttpRequest().Cookies[cookieName] == null)
{
HttpCookie hc = new HttpCookie(cookieName);

//This adds multiple cookie in the same key.
foreach (KeyValuePair<string, string> val in dic)
{
hc[val.Key] = val.Value;
}

//Setting 2 day expire.
hc.Expires.Add(new TimeSpan(2, 0, 0, 0));
GetHttpResponse().Cookies.Add(hc);
}
}

}
Output

cookies.png

Thanks for reading this blog. Have a nice day.