1

Zuerst bin ich Anfänger in asp. Beginnen Sie mit asp.net Tutorial, um eine Web-API zu schreiben. nach dem Tutorial beendet (ich habe keinen anderen Code hinzugefügt), wenn ich versuche, die API zu testen, geben Sie mir unautorisieren 401.asp mvc web api zurück 401 nicht autorisierte

fand ich die folgende Zeile in meinem Web.config

<authentication mode="None" />

und in WebApiCOnfig.cs

config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

wie kann ich meine API ohne Authentifizierung darauf zugreifen? es ist ein einfacher Test und keine Notwendigkeit, jegliche Authentifizierung

+0

Entfernen Sie entweder global/controller/action auth filters/attribute oder verwenden Sie das Attribut [AllowAnonymous] 'auf dem gewünschten Controller oder einer bestimmten Aktion. – Nkosi

+0

Ich habe die config.Filters @Nkosi kommentiert. Wo sollte ich [AllowAnonymous] hinzufügen? – Ashkan

+1

Nein, es ist das eine oder andere. sowieso. Wenn Sie das Attribut verwenden, können Sie es entweder auf dem Controller platzieren, um es auf alle Aktionen im Controller anzuwenden, oder direkt in der Aktion selbst für genau diese Aktion. – Nkosi

Antwort

1

Verwendung [AllowAnonymous] Attribut bestimmt Controller für alle Aktionen auf diesem cotroller

[AllowAnonymous] // Applies to all ations 
public class MyController : ApiController { 
    public IHttpActionResult MyAction1() { 
     //... 
    } 

    public IHttpActionResult MyAction2() { 
     //... 
    } 
} 

oder nur von der beabsichtigten Wirkung

public class MyController : ApiController { 
    [AllowAnonymous] // Applies to only this ation 
    public IHttpActionResult MyAction() { 
     //... 
    } 

    //Still secure 
    public IHttpActionResult MyAction2() { 
     //... 
    } 
} 

Wenn Sie fertig sind Sie testen kann sie entfernen.

Verwandte Themen