면도기보기에서 호출 된 webapi 메소드가 인증되지 않은 경우 로그인 페이지를 반환하지 않도록 mvc / webapi 프로젝트를 어떻게 구성합니까?
Javascript를 통한 호출을위한 WebApi 컨트롤러가있는 MVC5 애플리케이션입니다.
아래 두 가지 방법
[Route("api/home/LatestProblems")]
[HttpGet()]
public List<vmLatestProblems> LatestProblems()
{
// Something here
}
[Route("api/home/myLatestProblems")]
[HttpGet()]
[Authorize(Roles = "Member")]
public List<vmLatestProblems> mylatestproblems()
{
// Something there
}
다음 각도 코드를 통해 호출됩니다.
angular.module('appWorship').controller('latest',
['$scope', '$http', function ($scope,$http) {
var urlBase = baseurl + '/api/home/LatestProblems';
$http.get(urlBase).success(function (data) {
$scope.data = data;
}).error(function (data) {
console.log(data);
});
$http.get(baseurl + '/api/home/mylatestproblems')
.success(function (data) {
$scope.data2 = data;
}).error(function (data) {
console.log(data);
});
}]
);
그래서 로그인하지 않았고 첫 번째 방법은 성공적으로 데이터를 반환합니다. 두 번째 메소드는 로그인 페이지에 해당하는 데이터를 성공 함수로 리턴합니다. 즉, [Authorize]로 스탬프 처리되고 로그인하지 않은 컨트롤러 작업을 요청한 경우 mvc에 표시되는 내용입니다.
401을 무단으로 반환하여 로그인했는지 여부에 따라 사용자에 대해 다른 데이터를 표시 할 수 있기를 원합니다. 이상적으로 사용자가 로그인 한 경우 해당 회원의 특정 데이터를 반환 할 수 있도록 컨트롤러의 사용자 속성에 액세스 할 수 있기를 원합니다.
업데이트 : 아래 제안 중 더 이상 작동하지 않는 것처럼 보이므로 (Identity 또는 WebAPI 변경) github 에서 원시 예제를 작성 하여 문제를 설명해야합니다.