문제

클래식 ASP를 사용하고 Wind

차이가 발생하면 서버가 IIS 5.0을 실행합니다. 로그 아웃은 IE (6, 7 및 8) 및 Firefox에서 최소한 작동해야합니다.

이것은 오래되고 상당히 큰 사이트 (수백 개의 개별 ASP 페이지)이므로 개별 페이지를 변경하는 것과 관련된 모든 솔루션은 단순히 작동하지 않습니다. (기본적인 공손뿐만 아니라 같은 이유로 ASP.net으로 변경하는 것이 좋습니다.)

지금까지 찾은 것은 401 응답 코드를 보내는 것을 제안합니다. ~할 것 같다 일부 브라우저가 인증을 지우게하지만 (1) 어떻게 해야하는지 모르겠습니다. 또한 세션 객체 (예를 들어 .abandon,)와의 충전은 인증이 수행되는 곳이 아니기 때문에 완전히 무의미 할 것임을 알고 있습니다.

도움이 되었습니까?

해결책

"로그 아웃"이라는 용어를 사용하는 것은 혼란 스럽습니다. 일반적으로 로그인/아웃을 관리 할 수있는 사이트는 일반적으로 세션 객체를 사용하여 수행되지만 말하는 것은 아닙니다.

나는 당신이 말할 수있는 두 가지 가능한 것들을 인식합니다.

연결 인증

첫째, Windows 통합 보안에 의해 수행 된 유형의 인증이 연결 수준에서 수행된다는 사실. 연결이 인증되면 연결 (HTTP/1.1에 따라 기본적으로 개방 상태로 유지되는 연결)은 더 이상 인증 핸드 셰이크를 필요로하지 않고 사용할 수 있습니다.

클라이언트 또는 서버가 Connection: close 응답의 헤더이지만 실제로 연결이 닫히지 않을 수 있습니다.

또한 클라이언트는 한 번에 2 개 이상의 인증 된 연결을 열 수 있습니다. 이 경우 위의 접근 방식은 그 중 하나만 닫을 것입니다.

여기서 결론은 세션 당 인증 된 연결에 대해 할 수있는 일이 거의 없다는 것입니다.

자격 증명 캐싱

IE는 IE 세션 기간 동안 사용자가 네트워크 로그온에 입력하는 자격 증명을 캐시합니다. 따라서 기존 인증 된 연결을 닫을 수 있다고해도 IE는 캐시 된 자격 증명을 재사용하여 후속 인증 핸드 셰이크를 조용히 완료합니다. 클라이언트 가이 작업을 수행하지 않도록 구성 할 수는 있지만 그것이 당신이 사용할 수있는 것인지 의심합니다.

결론

(적어도 내가 당신이 묻는 질문)에 대한 대답은 다음과 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top