개요 :Asp.net MVC2에서 Ajax 호출을 통해 UnauthorizedRequest을 처리하는 방법
나는 사용자 인증을 수행하고있는 내 프레임 워크에 AuthorizeAttribute 분류 하위 있습니다.
정상적인 asp.net MVC 뷰 렌더링에서 jQuery를 통한 Ajax 렌더링으로 전환하는 중입니다. 따라서 응용 프로그램의 모든 링크는 데이터를 얻기 위해 ajax 호출을 수행합니다.
이 문제를 해결하기 위해 대부분의 내 페이지를 부분 뷰로 변환하여 각 아약스 요청은 페이지에서 업데이트해야하는 부분 만 가져옵니다.
요청이 승인되지 않은 정상적인보기 렌더링 중에는 web.config에 설명 된 로그온 페이지로 리디렉션되고있었습니다. Ajax로 변환 한 후에는 ajax 요청의 로그온 페이지에 대한 마크 업을 원하지 않지만 Ajax 호출 내에서 그에 따라 대응할 수 있도록 구조화 된 응답을 원한다면 상황이 약간 다릅니다.
이렇게하려면 하위 클래스의 AuthorizeAttribute 클래스에서 HandleUnauthorizedRequest 메서드를 재정의하고 filterContext.Result를 json 결과로 설정해야한다고 생각합니다. 하지만 이렇게하면 인증되지 않은 요청과 성공한 요청을 구분할 수 있습니다. 왜냐하면 아약스 호출 관점에서 두 가지 모두 성공적인 응답이기 때문입니다. 따라서 성공 처리기에서 처리됩니다.
이 문제를 해결하는 올바른 방법은 무엇입니까?
좋아요, 세션 중에 잘 작동합니다. 세션이 만료되면 바로 상태가 성공한 ajax 요청에 대한 응답으로 다시 로그인 페이지가 전송됩니다. 따라서 세션이 만료되었음을 감지하기 위해 무언가를해야합니다. 어떤 제안이 있습니까? – Nosh