2016-07-20 3 views
0

初めてASP.Net Web APIで認可を実装しています。 Web APIプロジェクトのカスタム認証を実装する必要があります。要件は、既存のテーブルに対してユーザーを承認することです。私はthisリンクに出くわしました。無許可のリクエストがどのように処理されるのか知りたいですか? 「HandleUnauthorizedRequest」が「承認されていない」メッセージを送信し、アプリケーションにAPIメソッドを実行させないようにするにはどうすればよいですか。具体的にどのように書くために:ASP.Net Web APIへのカスタム認可フィルタの実装

HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext) 
{ 
//Code to handle unauthorized request. Give the user error message instead of serving the request. 
} 

は、ASP.NetのWeb APIのためのSQLテーブルベースの認証を実装するために任意のより良い方法はありますか?

+0

承認する前に、認証をどのように管理しますか?それはすべてあなたが認証部分を実装する方法に依存します。 – Win

答えて

0

あなたは正しい方向にあります。認可フィルタの使用は1つの選択肢です。承認が失敗した場合は、UnauthorizedExceptionクラス、またはカスタムHttpResponseMessageのインスタンスを返すことができます。

もう1つのオプションは、AuthorizeAttributeまたは特にCustom AuthorizeAttributeを使用することです。

言われていること - あなたは、次のような何かを行うことができ、承認フィルターオプションで:

public override void OnAuthorization(HttpActionContext filterContext) 
    { 
     try 
     { 
      // your custom authorization logic 
      if not authorized // pseudo code 
       filterContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized); 
       return; 

     } 
     catch (Exception) 
     { 
      filterContext.Response = new HttpResponseMessage(HttpStatusCode.Forbidden); 
      return; 
     } 

     base.OnAuthorization(Unauthorized); 
    } 

あなたは、このようなカスタムソリューション対ASP.NET Identityようなフレームワークを使用して検討する必要があります。

関連する問題