2012-08-31 3 views
1

내 asp.net 응용 프로그램에서 HTTP 세션이 사용자가 로그인 페이지로 리디렉션되는 30 분 후에 시간 초과됩니다. 항목에HTTP 세션 시간 초과 후 상태 유지

  1. 사용자가 클릭과 같이 URL을 함께 편집 :

    http://localhost/app/edit?id=1

  2. 사용자가 ID = 1 항목을 편집 할 페이지에 어떤 변화를 만들어 여기에 시나리오는 30 분 동안 "저장"하지 않습니다.

  3. 31 분에 그는 세이브를 클릭하고 올바른 자격 증명을 입력하면 리디렉션 할 반환 URL이있는 로그인 페이지로 리디렉션됩니다.

사용자가 페이지를 떠난 상태를 유지하는 올바른 방법은 무엇입니까? 내가 가지고있는 것은 다음과 같은 로그인 요청과 함께 오는 반송 URL입니다 : http://localhost/app/edit.

저장을 클릭하면 POST 요청이 수행되지만 쿼리 문자열에는 아무 것도 전달하지 않습니다.

나는 POST가 발생하면 원래 URL 및 양식의 모든 값에 요청 개체가 http://localhost/app/edit?id=1

답변

2

외부에 ASP.NET 세션 기반 상태 메커니즘을 유지하는 메커니즘을 특별히 작성하지 않은 한 세션은 시간이 초과되면 손실됩니다. 이론적으로, 선택된 페이지/입력의 중간 초안 데이터를 사용자 ID 단위로 저장하는 상태 시스템을 구축 할 수 있습니다.이 방식으로 "고아"가 될 가능성이있는 데이터를 포함하는 페이지는 다소 검색 될 수 있지만, 주기적인 배경은 시간 초과로 인해 손실 된 변경 사항을 보존하기에 충분하다고 간주되는 페이지의 데이터베이스에 다시 데이터를 저장합니다.

+0

나는 많이 생각했다. 이것은 당신이 기술 한 노력을 보증하기에는 너무나 중요한 경우입니다. –

+1

대부분의 웹 개발자는 비슷한 상황에서 동일한 결론에 도달한다고 생각합니다. 불행히도 사용자가 항상 이해하지 못하는 전용 데스크톱 버전과 달리 브라우저 기반 앱의 단점은 하나입니다 ... –

0

로 리디렉션 할 수 있어야합니다.

요청이 가로 채어 로그인 화면으로 리디렉션됩니다. 이 시점에서 원래 URL을 저장하고 값을 요청하고 로그인을 처리 한 다음 원래 값으로 원래 URL로 리디렉션해야합니다.

POST 요청은 어떻게 생겼습니까? 임시 저장소 (세션 등)에 저장할 수있는 객체가 있습니까? 아니면 양식 모음을 처리합니까?