2017-02-21 12 views
2

デフォルトの「この要求に対して承認が拒否されました」ではなく、異なる「許可された」カスタムメッセージを異なる言語で配信する必要があります。私はOwinを認証として、ApiControllers /メソッドの[Authorize]属性を使用しています。私は、これがカスタムautorizationフィルタで行うことができることを知っていますが、クライアントに送信されたメッセージを変更するだけの過酷な状況に見えます。カスタム[Authorize]メッセージ401

メッセージを簡単に変更する方法はありますか、カスタム認証フィルタを使用する必要がありますか?

おかげ

答えて

2

残念ながらそれはできません。

source codeに基づいて、AuthorizeAttributeを継承する新しいカスタムAuthorize属性を作成することもできます。その後、HandleUnauthorizedRequestメソッドをオーバーライドするだけで、自分で置き換えることができます。残りのメソッドはまだベースで処理されますAuthorizeAttribute

public class MyCustomAuthAttribute : AuthorizeAttribute 
    { 
     protected virtual void HandleUnauthorizedRequest(HttpActionContext actionContext) 
     { 
      if (actionContext == null) 
      { 
       throw Error.ArgumentNull("actionContext"); 
      } 

       actionContext.Response = 
       actionContext.ControllerContext.Request.CreateErrorResponse(
             HttpStatusCode.Unauthorized, 
             "My Un-Authorized Message"); 
     } 
    } 
+0

チャームのように働いていた!!!!ありがとう@CamBruce – aplon

関連する問題