2016-05-24 14 views
1

Mein Team baut eine Web-API im .net-Kern. Wir verwenden Token-Authentifizierung, um jeden Client zu authentifizieren. Das Token stammt aus dem Azure AD.JWT-Authentifizierung

Wir setzen diesen Code in Startup.cs

app.UseJwtBearerAuthentication(options => { 
      options.AutomaticAuthenticate = true; 
      options.AutomaticChallenge = true;    
      options.Authority = "https://login.windows.net/1da3434a9-e5a6-4e9e-80c3-aca8ed37cb03";    
      options.Audience = "https://test.onmicrosoft.com/test_api"; 
      options.RequireHttpsMetadata = false; 
     }); 

     services.AddCors(options => 
     { 
      // Define one or more CORS policies 
      options.AddPolicy("AllowAll", 
       builder => 
       { 
        builder.AllowAnyOrigin() 
         .AllowAnyHeader() 
         .AllowAnyMethod() 
         .AllowCredentials(); 
       }); 
     }); 

nur diese eine Arbeit, wenn wir den anonymen Zugriff erlauben. Ich habe das Token überprüft und das Token ist gültig. Aber jedes Mal, wenn wir den Controller drücken, wird der Fehler angezeigt. obwohl wir cors aktivieren

+0

Können Sie uns den CORS-Code zeigen? –

+0

@Danny, ich habe meinen Beitrag aktualisiert und den CORS Code hinzugefügt –

+0

Danke. Können Sie die genaue Fehlermeldung anzeigen? –

Antwort

0

Die Reihenfolge des Hinzufügens von Middleware ist von Bedeutung!

Um CORS für die gesamte Anwendung zu ermöglichen, die CORS Middleware Ihre Anfrage Pipeline mit der Methode UseCors Erweiterung hinzufügen. Beachten Sie, dass die CORS-Middleware alle definierten Endpunkte in Ihrer App ausführen muss, die die stammesübergreifenden Anfragen unterstützen (z. B. vor jedem Anruf an UseMvc).

sollten Sie services.AddCors fast alles setzen über die die Benutzer über 401.

0

Sie kombinieren können nicht & AllowAnyOrigin AllowCredentials umleiten könnte. Wählen Sie einen bestimmten Ursprung und Ihre Anfrage wird wahrscheinlich funktionieren.