C#Asp.Net webAPIでのAuthorizeAttributeの使用は何ですか?
承認とは、認証されたユーザーが特定のリソース(Web APIリソース)でアクションを実行できるかどうかを決定するプロセスです。たとえば、データを取得してデータを投稿する権限を持つことは、承認の一部です。承認プロセスは、コントローラーアクションメソッドを実行する前に実行されます。これにより、そのリソースへのアクセスを許可するかどうかを柔軟に決定できます。
ASP.NETでは、Web APIの承認は、コントローラーアクションメソッドが実行される前に実行される承認フィルターを使用して実装されます。 Web APIは、組み込みの承認フィルターAuthorizeAttributeを提供します。このフィルターは、ユーザーが認証されているかどうかをチェックします。そうでない場合は、アクションを呼び出さずにHTTPステータスコード401(Unauthorized)を返します。
フィルタは、グローバルに、コントローラレベルで、または個々のアクションのレベルで適用できます。
グローバル
すべてのWebAPIコントローラーのアクセスを制限するには、AuthorizeAttributeフィルターをグローバルフィルターリストに追加します。
public static void Register(HttpConfiguration config){ config.Filters.Add(new AuthorizeAttribute()); }
コントローラー
特定のコントローラーへのアクセスを制限するには、フィルターを属性としてコントローラーに追加します。
//コントローラーのすべてのアクションに承認を要求します。[承認]
public class StudentsController: ApiController{ public HttpResponseMessage Get(int id) { ... } public HttpResponseMessage Post() { ... } }
アクション
特定のアクションへのアクセスを制限するには、アクションメソッドに属性を追加します。
public class StudentsController : ApiController{ public HttpResponseMessage Get() { ... } // Require authorization for a specific action. [Authorize] public HttpResponseMessage Post() { ... } }
例
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
アクションメソッドにauthorize属性を追加したため、アクションメソッドにアクセスするには、ベアラートークン、APIキー、OAuthなどの適切な承認を使用する必要があります。不正アクセスは401不正になります 以下に示す応答。
-
C#ASP.NET WebAPIのさまざまな種類のフィルターは何ですか?
フィルタは、WebApiFrameworkリクエスト処理のさまざまなレベルで追加のロジックを挿入するために使用されます。フィルタは、横断的関心事(ロギング、承認、およびキャッシング)の方法を提供します。フィルタは、宣言的またはプログラム的な方法でアクションメソッドまたはコントローラに適用できます。以下は、Web API C#のフィルターの種類です。 認証フィルター − 認証フィルターは、ユーザーの詳細を認証するのに役立ちます。認証フィルターでは、ユーザーの信頼性をチェックするためのロジックを記述します。 認証フィルター − 承認フィルターは、ユーザーアクセスのチェックを担当しま
-
C#ASP.NET WebAPIでのコントローラーアクションのさまざまな戻り値の種類は何ですか?
Web APIアクションメソッドは、次のリターンタイプを持つことができます。 ボイド プリミティブ型/複合型 HttpResponseMessage IHttpActionResult 無効 − すべてのアクションメソッドが何かを返す必要はありません。ボイドリターンタイプにすることができます。 例 using DemoWebApplication.Models using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoCont