2012-10-31 1 views
0

내 Asp.Net MVC 3 응용 프로그램에서 컨트롤러 동작이 호출되기 전에 세션이 만료되었는지 확인하는 사용자 정의 세션 만료 처리기 속성 필터가 있습니다. .두 시간 초과시 응용 프로그램이 사용자를 로그인 페이지로 리디렉션 할 때 세션 시간 초과 및 인증 시간 초과 값

세션이 만료 된 경우 사용자 지정 필터는 사용자를 양식 인증에서 로그 아웃하고 사용자를 로그인 페이지로 리디렉션합니다. 또한 승인 된 컨텐트에 액세스 할 때 사용자가 권한 부여를 실패하면 동일한 작업 흐름이 발생한다는 것도 알고 있습니다.

세션 또는 인증 타임 아웃이 동일한 결과 (사용자가 양식 승인에서 로그 아웃하여 로그인 페이지로 리디렉션 됨) 인 경우, 타임 아웃 (세션)이 더 큰지 또는 타임 아웃 (인증)보다 작습니까?

답변

0

질문을 올바르게 이해하면 인증 속성이 게이트 게이트 키퍼가 될 수 있습니다. 문제는 응용 프로그램 풀을 다시 시작할 때와 같이 양식 승인 토큰보다 세션 시간이 초과 된 경우입니다. 당신이 이것을 처리하고있는 것 같아요. 반대의 경우 비 승인 페이지/작업에 대해 세션의 모든 내용에 의존하지 않도록해야합니다. 그렇지 않으면 사용자가 익명으로 페이지에 액세스 할 수있을 때 세션 값을 예상 할 위험이 있습니다. 그 이상으로 나는 문제를 야기 할 다른 시나리오가 있다면 생각할 수 없다.

auth 속성은 항상이 사례를 포착하고 세션이 다시 시작되는 로그인 페이지로 리디렉션되어야합니다.

세션에주의하십시오. 세션 객체에 대한 액세스가 기본 동작으로 해당 사용자에 대해 잠겨 있기 때문에 세션 객체에 대한 액세스가 한 번에 한 번만 처리된다는 것과 동시에 해당 사용자 (예 : Ajax 요청)에 대한 여러 요청이 처리됩니다.

다른 요청은 세션 개체에 액세스하는 다른 요청이 완료 될 때까지 중단됩니다. 주 요청 만 세션에 액세스하지만 해당 사용자에 대한 다른 겹치는 요청 (있는 경우)이없는 경우에는 문제가되지 않습니다.

+0

안녕하세요, 아담, 답장을 보내 주셔서 감사합니다 ... 내 문제는 현재 인증 시간이 초과되거나 ORA 세션 시간이 초과 된 경우 (처음에는 시간 제한 없음) 사용자가 로그 아웃 한 후 로그인 페이지로 리디렉션 한 경우입니다. 두 타임 아웃의 경우). 이 구현에서 세션 및 인증 값이 특정 방식으로 관련되어야합니까? 어쨌든 사용자는 먼저 인증 시간이 끝난 후에 로그인해야하기 때문입니다. –