Wenden Sie das [Authorize]-Attribut implizit auf alle Web-API-Controller an

Wenden Sie das [Authorize]-Attribut implizit auf alle Web-API-Controller an

Sie haben zwei Möglichkeiten

  1. Controller-Ebene, indem Sie Ihren Controller mit dem Autorisierungsattribut ausstatten.

    [Authorize]
    [RoutePrefix("api/account")]
    public class AccountController : ApiController
    {
    
  2. Sie können es auch auf globaler Ebene für alle Routen in Register festlegen Methode der Datei WebApiConfig.cs

     config.Filters.Add(new AuthorizeAttribute());
    

Sie können den AuthorizeAttribute einstellen zur WebApiConfig Datei wie unten:

public static void Register(HttpConfiguration config)
{
  config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
  );
  config.Filters.Add(new AuthorizeAttribute());
}

Jetzt benötigen alle Methoden von Ihren Web-API-Controllern eine Autorisierung. Wenn Sie diese Berechtigungspflicht für eine Methode entfernen möchten, müssen Sie das Attribut [AllowAnonymous] hinzufügen wie in der Login-Aktionsmethode.