2012-06-28 2 views
3

웹 이외의 배경에서 오는 나는 쿠키 고유성에 어려움을 겪고 있습니다. CustomerCode라는 쿠키를 읽고 쓸 때 내 쿠키 컬렉션에 같은 이름의 쿠키가 여러 개 있습니다. 어떻게 피할 수 있습니까?쿠키는 기본 키와 동일한 기능을합니까?

duplicate request cookies

duplicate response cookies

데이터베이스 행 고유성을 보장하기 위해 기본 키를 사용합니다. 쿠키에 상응하는 것이 있습니까? 내가 쿠키에 쓰기를 단순화하기 위해이 "Reusable Cookie Container" code을 사용하고 있습니다 :

Master.Cookies.CustomerCode = SessionWrapper.CustomerCode; 

그런 다음 내 SessionWrapper에서 나는 쿠키 (들)에서 세션 변수를 복원

public static void InitiateSessionVariablesFromCookies(IAppCookies appCookies) { 
    if (SessionWrapper.CustomerCode == null && appCookies.CustomerCode != null) { 
     SessionWrapper.CustomerCode = appCookies.CustomerCode; 
    }... 

쿠키 컬렉션 그래서 CustomerCode 여러 번 포함 잘못된 값이 세션 변수로 전달됩니다.이 코드를 모두 보지 않고도이 질문을 대답하기가 어렵다면 쿠키를 설정하고 세션 변수로 다시 읽어들이거나 (또는 ​​나를 도울 링크가 포함 된) 적절한/최선의 방법을 설명하십시오.

미리 감사드립니다.

답변

2

다른 만료 날짜/시간이있는 경우 "중복"을 얻을 수 있습니다.

HttpCookie Temp = new HttpCookie("MyName", "123"); 
Temp.Expires = DateTime.Now.AddMinutes(5); 

Response.Cookies.Add(Temp); 

이 코드는 동일한 이름과 값으로 실행될 때마다 새로운 쿠키를 생성합니다.

+0

나는 이것이 내 문제를 해결한다고 믿는다. Expires를 DateTime.Now.AddDays (10)로 설정하고 시간 부분이 "중복"쿠키를 야기 할 때마다 다릅니다. Expires 설정을 DateTime.Today.AddDays (10)로 변경했습니다. 나는 지금 회의를 가졌지 만 그것이 효과가 있다면 나중에 대답으로 표시 할 것입니다. 감사! – DeveloperDan

+0

다음은 잠재적 인 문제와 그 문제를 해결하는 방법을 설명하는 ASP.NET 쿠키에 대한 기사입니다. http://www.codeproject.com/Articles/3106/On-The-Care-and-Handling-of-Cookies. 나는 이것을 읽은 후 그것에 착륙했다 : http://stackoverflow.com/questions/198295/asp-net-cookie-expiration-time-is-always-1-1-0001-1200-am – DeveloperDan

관련 문제