2012-08-01 4 views
3

클라이언트의 jquery 메서드에서 호출 된 컨트롤러 동작이 JSON을 반환합니다. 어떤 경우에는이 조치로 401을 반환해야 할 수도 있습니다. PreserveLoginUrl이 web.config에서 true로 설정되어있는 한 표준 MVC가 401을 실행하려고하면 사용자를 로그인 페이지로 리디렉션하는 응답을 만듭니다. 나는 진정한 401이 클라이언트에게 보내지도록 특정 행동에 대해 PreserveLoginUrl을 오버라이드 할 수 있기를 원한다. 그러나 대부분의 작업에서 PreserveLoginUrl = true가 올바른 동작이므로 유지 관리해야합니다.PreserveLoginUrl MVC 4에 대한 덮어 쓰기

PreserveLoginUrl = true 기능을 유지하면서 몇 가지 작업에 대한 리디렉션없이 실제 401을 수행 할 수있는 방법에 대한 제안 사항은 무엇입니까? 지금은 해결 방법으로 401 대신 400을 반환하지만 NOT 권한을 부여하려고하므로 올바른 동작이 아닙니다.

+0

그냥 호기심에서 ... 로그인 페이지로 리디렉션하지 않고 401로 응답하는 유스 케이스는 무엇입니까? 내가 생각할 수있는 유일한 경우는 사용자가 제어하는 ​​브라우저가 아닌 다른 것들에 의해 호출되는 WebApi 작업에 대한 것인데, 이것들은 이미 기본적으로 로그인 페이지로 리디렉션되지 않는다고 생각합니다. –

답변

0

대신 403 응답을 사용하고 javascript/jquery 메서드가 응답을 403이라면 원하는대로 처리하십시오. ASP.net에서 401 응답의 기본 동작을 재정의하는 것은 극히 어렵습니다.