0

우리 웹 API에 ProtoBufFormatter을 사용하고 있습니다. 또한 우리의 사용자 정의 권한 부여 속성을 사용하여Web API - ProtoBufFormatter - 사용자 정의 권한 부여 특성이있는 serializable 401을 반환합니다.

config.Formatters.Add(new ProtoBufFormatter()); 

. 우리의 웹 API는 Protobuf 던지기하고 응답을 직렬화 할 수 없기 때문에 예외 결과 (401)를 반환 할 때 문제는, 그래서 다음과 같은 예외가 발생합니다 :

유형에 대해 정의 된 시리얼 라이저 :은 System.Object

내가 주석

:

protected override void HandleUnauthorizedRequest(HttpActionContext actionContext) 
     { 
      // base.HandleUnauthorizedRequest(actionContext); 
     } 

서버가이는 401 응답을 보내도록 방지로 예외를 던지는 중지합니다.

하지만이 문제를 해결하는 방법을 잘 모르겠습니다.

내 컨트롤러에서 해당 사용자가 허가되지 않은 protobuf serializable 응답을 반환해야합니까?

답변

0

다음과 같은 응답에 우리의 직렬화 내용을 반환하여 해결 :

protected override void HandleUnauthorizedRequest(HttpActionContext actionContext) 
     { 
      actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, 
       new ApiResponse(false, ApiErrorMessages.Unauthorized, ErrorType.Unauthorized)); 
     }