0

私たちの問題は以下の通りです:ProtoBufFormatterをWeb APIに使用しています。また、当社のカスタム承認属性を使用してWeb API - ProtoBufFormatter - カスタムAuthorize属性でシリアル化可能な401を返します

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

。弊社のWeb APIがいるProtobuf投げ、それが応答をシリアル化することができないとして、例外が発生し401を返しているときに問題があるので、次の例外スロー:

タイプが定義されていませんシリアライザ:System.Objectの

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

サーバは、これが401応答を送信することを防ぐように例外を投げる停止します。私はコメントアウト

しかし、私はこの問題に最善の対処方法を確認していません。

私はその後、私のコントローラのアクションで、ユーザーが不正であることを含んでいるProtobufシリアライズ可能な応答を返すべきでしょうか?次のように応答して、私たちのシリアライズ可能なコンテンツを返すことによって解決

答えて

0

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