2009-07-31 2 views
1

나는 또한 꽤 많은 세션 변수를 사용하고 오랜 기간 (1 개월)ASP.Net 세션 상태는

에 대한 영구 인증 cokkies을 지속 할 필요가있다. 이제 세션 제한 시간을 그만큼 길게 설정할 수 없습니다 (서버를 죽일 것입니다). 현재 30 분으로 설정되어 있습니다.

사용자가 하루 동안 브라우저 창을 열어 둔 채로 있으면 인증 쿠키는 만료되지 않지만 세션은 종료됩니다. 그리고 응용 프로그램은 작동하지 않습니다.

이 문제에 대한 제안, 해결책 또는 유용한 링크가 있습니까? 인증 쿠키 지속하기

+0

세션에 저장할 필요가있는 항목은 무엇입니까? – UpTheCreek

답변

1

쉽고, 세션 상태의 독립적 :

<system.web> 
    <authentication mode="Forms"> 
    <forms timeout="43200"/> 
    </authentication> 
</system.web> 

만료 시간 정도로, 분 설정된다

30 (일) * 24 (시간) * 60 (분) = 43200 분

세션 내용은 다소 까다 롭지만 유용합니다.

실제로 세션에서 실제로 무엇을 저장하고 있는지, 그리고 항상 모든 세션을 필요로하는지 확인해야합니다. 세션 변수는 서버에 저장되므로 응용 프로그램이 다시 시작될 때마다 세션 변수가 유지되므로 (사이트의 마지막 활동 후 20 분 또는 마지막 앱 재시작 이후 29 시간, 기타 예외적 인 경우) 기본값으로 유지됩니다. 세션 서버 나 SqlSessions를 사용하여 InProc 세션 이외의 것을 사용합니다.

그러나 프로파일로도 작업을 수행 할 수 있으므로 사용 빈도가 가장 적은 변수를 프로파일 저장소에 저장하고 필요할 때만 검색하십시오.

그렇지 않으면 사용자가 다시 방문 할 때 세션 상태를 다시 작성할 수있는 방법을 살펴 보는 것이 좋습니다. 이렇게하면 지속되는 쿠키를 토큰으로 저장하여 중단 한 부분부터 다시 시작할 수 있습니다. 가장 쉬운 방법은 인증 시스템에서 사용자 이름을 가져 와서 데이터베이스에 세부 정보를 저장하는 것입니다 ...