Azure ASC를 사용하여 사용자를 인증하기 위해 WIF를 사용하는 MVC 백엔드가있는 Angular JS 응용 프로그램이 있습니다. MVC 컨트롤러에는 [Authorize]
특성이 있으므로 인증되지 않은 사용자가 인증이 필요한 페이지에 액세스하려고하면 401 오류가 발생합니다.Internet Explorer가 로그 아웃시 인증되지 않은 페이지로 리디렉션되지 않음
그래서 과정은 다음과 같다 : Home/Index
- 시도를 ("/ unauthorized");
- 사용자가 로그인 버튼을 클릭하고 인증을 위해 Azure ACS로 리디렉션됩니다.
- 인증 성공 후 사용자는 인증 토큰을 사용하여 사이트로 다시 연결되며 보호 된 리소스에 액세스 할 수 있습니다.
각도 httpInterceptor :
// On response failture
responseError: function (rejection)
{
// console.log(rejection); // Contains the data about the error.
if (rejection.status == 401)
{
$location.path("/unauthorized");
return $q.when(rejection);
}
// Return the promise rejection.
return $q.reject(rejection);
}
처음 예상대로 모든 브라우저의 행동 페이지를로드합니다.
로그 아웃 할 때 문제가 발생합니다. IE를 제외한 모든 브라우저에서 다음이 발생합니다.
- 로그 아웃 URL로 리디렉션하여 싱글 사인 아웃을 수행합니다. 로그 아웃 한 후
- 기본 페이지로 다시 리디렉션하지만 난 이제 더 인증 토큰이 없기 때문에 나는 401 IE를 사용할 때이
그러나 무단 (로그인) 페이지로 이동하고 401
@if (User.Identity.IsAuthenticated)
{
//load angular files here
}
을 나는 401이 발생하지 않는 것을 볼 수 있습니다 피들러에 무슨 일이 일어나고 있는지를 볼 때 : 나는 다음과 면도기 문 내부의 각 컨트롤러, 서비스 및 지침을 모두로드하기 때문에 각 스크립트의 아무도는로드하지 IE http://i.imgur.com/Of53mEY.png
하지만 다른 브라우저와 함께 않습니다 :
http://i.imgur.com/g1GmVw3.png
이유는 (401)은 다른 브라우저처럼 IE에서 발생하지 않는 이유는 무엇입니까?