ASP.NET 소스문의드립니다

현재 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);
}
1개의 좋아요

쿠키 값은 최종 웹브라우저에서 받아야만 갱신이 됩니다. 그러니까… 정상적으로 보이는데요?

2개의 좋아요