현재 ASP를 사용하던회사에서 언어를 바꾸기위해서 새로 개발을 진행을하고있는데 도저히 이해가안되는부분이있어서 문의드립니다.
ASP.NET Core MVC로 개발중에있습니다…
우선 setCk를 만들어서 쿠키를 만들생각인데…
쿠키이름의 정보들을 받아서 $$ 로 짤라 배열방식으로 만들어서 필요자리에 해당값을 넣습니다…
너무 예전방식이라 바꾸고싶지만 페이지 규모가 크다보니 하나하나 변경을 해야되서 이전방식을 그대로 따라가라고 지시를 받았습니다.
값을 찍어보니
쿠키값확인 :
쿠키값저장 : 1$$$$
쿠키값확인 :
쿠키값저장 : $$2$$
쿠키값확인 :
쿠키값저장 : $$$$3
두번째 호출시
쿠키값확인 : $$$$3
쿠키값저장 : 1$$$$3
쿠키값확인 : $$$$3
쿠키값저장 : $$2$$3
쿠키값확인 : $$$$3
쿠키값저장 : $$$$3
이렇게 진행됩니다…제가 소스에서 어떤부분을 뺴먹어서 그런지 도저히 이해가안되서 도움을 요청드립니다…
static private void setCk(string name,string value,int num)
{
string[] CookieArray = new string[(int)Enum.Parse(typeof(CookieLen), name.ToString())];
if (hca.HttpContext.Request.Cookies[name] != null && hca.HttpContext.Request.Cookies[name] != "")
{
CookieArray = hca.HttpContext.Request.Cookies[name].Split("$$");
if (CookieArray.GetLength(0) != (int)Enum.Parse(typeof(CookieLen), name.ToString()))
{
CookieArray = new string[(int)Enum.Parse(typeof(CookieLen), name.ToString())];
}
}
if (CookieArray.GetLength(0) < num && num>0)
{
Array.Resize(ref CookieArray, num);
}
string tempValue = "";
if (CookieArray.GetLength(0) <=1)
{
tempValue = value + "$$";
}
else
{
CookieArray[num] = value;
foreach (var i in CookieArray.Select((value, index) => new { Value = value, Index = index }))
{
tempValue += i.Value;
if (i.Index < CookieArray.GetLength(0) - 1)
{
tempValue += "$$";
}
}
}
hca.HttpContext.Response.Cookies.Append(name, tempValue);
}