2009-02-05 6 views
1

세션 쿠키를 사용하여 사용자를 로그온 상태로 유지하는 웹 응용 프로그램이 있습니다. 사용자가 로그온하면 GUID가 생성되어 데이터베이스의 사용자 레코드와 연결됩니다. GUID는 쿠키에 저장되므로 각 페이지가로드 될 때 읽을 수 있고 데이터베이스 항목과 비교하여 확인할 수 있습니다.세션 쿠키가 세션 중간에 사라질 수있는 원인은 무엇입니까?

쿠키를 설정하는 코드는 매우 간단합니다.

Response.Cookies("UserSession")("ID") = vsSessionCookie 
Response.Cookies("UserSession").path = "/" 

시스템이 수년간 사용 중이더라도 새로운 클라이언트가 오류가 발생했다고 불평하기 시작했습니다. 쿠키를 포함하여 오류가 발생할 때 오류에 대한 정보를 기록 할 때 세션 쿠키가 더 이상 존재하지 않는다는 것을 알았습니다. 코드를 살펴보면 세션 쿠키가 이동하면 응용 프로그램 오류가 발생한다는 것을 알 수 있습니다.

응용 프로그램에서 사용하는 만료 날짜가 설정된 영구 쿠키가 유지된다는 점에 유의하십시오.

나는이 문제를 좀 더 정상적으로 처리해야한다는 것을 알고 있지만, 내가 당황스러워하는 문제는 세션 쿠키가 사라질 수 있다는 것입니다. 이는 사용자가 시스템을 사용할 때 임의로 발생한다고 주장하기 때문에 일정 기간 동안 비활성 상태 인 사용자의 경우는 아닙니다. 불행히도 그들은 더 구체적인 것은 아니지만 한 가지 경우에 나는 그들이 시스템에서 보고서를 실행 한 후에 일어난 것을 발견합니다. 이 보고서는 새 브라우저 창 (Window.Open을 사용하여 JavaScript에서 열림)에 표시되므로이 창을 닫으면 원래 창에서 세션 쿠키가 사라집니다.

시스템 (슬프게도)은 IE에서만 작동하지만이 동작을 일으킬 수있는 설정을 찾을 수 없으며 많은 다른 클라이언트에서 행복하게 작동합니다.

이 동작이 발생할 수있는 설정이 있습니까? 왜 일부 클라이언트에서는 작동하지만 다른 클라이언트에서는 작동하지 않아야합니까?

어쩌면 그것은 창을 닫는 것과 관련이 없으며 다른 프로세스는 세션 중간에 세션 쿠키를 지우고 있지만 무엇을해야합니까?

많은 질문 .... 죄송 합니다만, 누군가가 상황에 대한 경험이 있다면, 많은 도움이 될 것입니다!

웹 시스템은 ASP.Net로 작성되었습니다. 클라이언트도 똑같은 고통을 겪고있는 클래식 ASP로 작성된 시스템이 있기 때문에 웹 시스템 자체가 잘못되었다고 생각하지 않습니다.

답변

2

모든 클라이언트가 동일한 버전의 IE를 사용합니까? 또한 Windows 안티 바이러스 소프트웨어에서 쿠키를 지우는 것을 보았습니다.

+0

내가 직접 접촉이없는 그 사람은 현재 알고있는 것 같지 않습니다! 클라이언트의 설정에 대한 더 많은 정보를 찾자 마자 그 게시물을 업데이트 할 것입니다. –

0

저는 IE6부터 지금까지 IE8까지 이러한 문제에 직면 해 왔습니다. 문제는 로컬 페이지 (예 : 파일 : // c : \ a.htm)가있는 경우 IE (첫 페이지는 무엇입니까?)를 시작한 다음 실제 웹 사이트로 이동하면 문제가되는 것 같습니다 (여전히 오케이) 그런 다음 귀하의 웹 사이트에서 팝업을 열면 팝업을 닫을 때 (즉, 세션 쿠키가 파괴되면 쿠키의 모든 데이터가 사라지고 로그 아웃됩니다.) 그래서 내 솔루션은 에 (시작> 실행> 'iexplore를 http://www.mywebapp-site.com')

그러나 나는 또한 쿠키에 설정된 일부 데이터는 여전히 아무 생각이 설정되지되지 않은 문제에 직면 .. 왜 ..

관련 문제