ASP.NET Core-2.0 - AddAuthentication und DefaultScheme
Ich versuche, ein upgrade ASP.NET Core 1.1 application-2.0. Die Anwendung muss zwei beide der Authentifizierung und JWT ein. Ich habe code, die wie folgt aussieht:
services.AddAuthentication(options =>
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddBasic(BasicScheme, _ => { })
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{...}
Mein problem ist, dass ich kann nicht scheinen, um die beide von Ihnen arbeiten in der gleichen Zeit! Je nachdem, was ich als DefaultScheme ist der einzige, der arbeitet und der andere bricht ein und gibt einen HTTP 401.
Irgendwelche Ideen, wie kann ich die beiden von Ihnen zu arbeiten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur gelungen, diese zu funktionieren... hier der link geholfen: https://wildermuth.com/2017/08/19/Two-AuthorizationSchemes-in-ASP-NET-Core-2
Der wichtige Teil ist hier:
When we use the Authorize attribute, it actually binds to the first authentication system by default. The trick is to change the attribute to specify which auth to use:
Müssen Sie entfernen, die option aus AddAuthotization Methode:
Dann ändern Sie Ihre Konfiguration () - Methode Starten.cs hinzufügen die folgenden Anweisungen Verwenden:
Nun in der GetSchemeForRequest-Methode können Sie bestimmen, welche Regelung Sie verwenden sollen.
Ich fand die Antwort hier und in meinem code. Es funktioniert!
Hinzufügen dieser Zeile code zu starten.cs war für mich