2011-01-28 4 views
3

AuthorizeAttributeJsonResult을 함께 사용하는 가장 직접적인 방법은 무엇입니까? 그러면 사용자가 승인되지 않은 경우 응용 프로그램이 로그인 페이지가 아니라 Json 오류를 반환합니까?ASP.NET MVC JsonResult 및 AuthorizeAttribute

내가 현재 고려중인 두 가지 사항은 AuthorizeAttribute을 확장하거나 IAuthorizationFilter을 구현하는 새로운 속성을 만드는 것입니다.

답변

3

조치에서 AuthorizeAttribute을 제거하십시오.

if (!User.Identity.IsAuthenticated) 
    return Json("Need to login"); 

또는 당신이 원하는대로 메시지 반환 :

그런 다음 작업의 첫 번째 라인이 삽입합니다.

+2

다른 클래스에 대한 논리를 리팩토링하지 않는 한 그것은 나쁜 디자인처럼 보입니다. 여러 작업에 대한 오류 메시지를 변경해야하는 경우 어떻게해야합니까? 그런 일은 일어나지 않지만 결코 알지 못합니다. – KPthunder

+5

인증 된 사용자를 확인하는 고유 한 속성을 만들 수 있습니다. 그렇지 않은 경우 리디렉션 대신 json 객체를 반환합니다. – ajma

+1

여러 개의 오류 메시지가 필요하면 리소스를 사용하여 리소스를 보관하거나 jsonresult를 반환 할 때 참조 할 수있는 정적 문자열로 만드십시오. – ajma