AllowAnonymous-Attribut funktioniert nicht auf Web-API-controller

Ich habe eine web-Anwendung geschrieben, in ASP.NET MVC 4. Es ist eine intranet-Anwendung, daher bin ich mit der Windows-Authentifizierung die Anonyme Authentifizierung deaktiviert ist). Es stellt einige Web-API-services zu anderen web-Anwendungen.

Das problem ist, dass diese Dienste zugegriffen werden soll, durch anonyme Benutzer aus anderen Anwendungen. Wenn ich rufen Sie den Dienst über den browser funktioniert alles einwandfrei (was offensichtlich ist). Aber wenn ich versuche zu kommunizieren mit dem Dienst über eine andere Anwendung gibt es ein 401.2-Fehler. Die Dekoration der API-controller mit anonymen Attribut nicht helfen. Ich habe versucht, auch im web.config, um die location-element wie im folgenden code:

<location path="Controllers/Api">
<system.web>
  <authorization>
    <!-- All anonymous users access to the virtual path api -->
    <allow users="?" />
  </authorization>
</system.web>
<!-- Need to include the security overrides else it will inherit from the root of the application -->
<system.webServer>
  <security>
    <authentication>
      <!-- Need to enable anonymous access and turn off Windows authentication for the virtual path -->
      <anonymousAuthentication enabled="true"/>
      <windowsAuthentication enabled="false"/>
    </authentication>
  </security>
</system.webServer>

Aber es hilft nicht, entweder. Im web.config habe ich keine anderen Abschnitten eingestellt (ich meine, ich habe keine Berechtigung block).

Hat jemand eine Idee was Los ist? Warum geht es nicht? Ich wäre für jede information dankbar, wie ich dieses problem lösen kann.

Dies ist meine Web-API-Aktion erstellt für Testzwecke:

[AllowAnonymous]
public class TestController : ApiController
{
    public string GetSayHello()
    {
        return "Hello world";
    }
}


Grüße.

InformationsquelleAutor Roman Suska | 2015-05-28
Schreibe einen Kommentar