Heim > Backend-Entwicklung > C++ > Wie implementiert man tokenbasierte Authentifizierung in ASP.NET Core?

Wie implementiert man tokenbasierte Authentifizierung in ASP.NET Core?

Linda Hamilton
Freigeben: 2024-12-30 04:39:57
Original
629 Leute haben es durchsucht

How to Implement Token-Based Authentication in ASP.NET Core?

Tokenbasierte Authentifizierung in ASP.NET Core

Die Implementierung der tokenbasierten Authentifizierung in ASP.NET Core kann eine Herausforderung sein, insbesondere beim Übergang von früheren Versionen von Rahmen. Dieser Artikel enthält detaillierte Anweisungen zum Konfigurieren Ihrer WebApi-Anwendung für die tokenbasierte Authentifizierung und behandelt häufige Probleme und Aktualisierungen für .NET Core-Versionen.

Startkonfiguration

In Startup.cs, konfigurieren Sie Ihre Dienste und fügen Sie den folgenden Code innerhalb der Methode „ConfigureServices“ hinzu:

const string TokenAudience = "Myself";
const string TokenIssuer = "MyProject";

var claimsPrincipal = new System.Security.Claims.ClaimsPrincipal(new[]
{
    new System.Security.Claims.ClaimsIdentity(new[]
    {
        new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, "Demo User")
    })
});

public string BuildJwt()
{
    var keySecret = authenticationConfiguration["JwtSigningKey"];
    var symmetricKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keySecret));

    var creds = new SigningCredentials(symmetricKey, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken(
        issuer: TokenIssuer,
        audience: TokenAudience,
        claims: claimsPrincipal.Claims,
        expires: DateTime.Now.AddMinutes(20),
        signingCredentials: creds
    );

    return new JwtSecurityTokenHandler().WriteToken(token);
}
Nach dem Login kopieren

Als nächstes konfigurieren Sie die Authentifizierungspipeline innerhalb der Methode konfigurieren:

app.UseAuthentication();
app.UseAuthorization();
Nach dem Login kopieren

Authentifizierungs-Middleware verwenden

Stellen Sie sicher, dass die Middleware app.UseAuthentication() vor jeder Middleware platziert wird, die Benutzerinformationen erfordert, wie z. B. app.UseMvc (). Dadurch wird im Autorisierungsheader nach einem Bearer-Token gesucht.

Autorisierungsrichtlinie (optional)

Geben Sie bei Bedarf eine Autorisierungsrichtlinie an, um den Zugriff auf bestimmte Controller oder Aktionen einzuschränken nur für Inhabertoken:

services.AddAuthorization(auth =>
{
    auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
        .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType)
        .RequireAuthenticatedUser().Build());
});
Nach dem Login kopieren

Generieren der Token

Um das Token für die Authentifizierung zu generieren, verwenden Sie die zuvor definierte BuildJwt-Methode. Zum Beispiel in einer Controller-Aktion:

[HttpPost]
public string AnonymousSignIn()
{
    return BuildJwt();
}
Nach dem Login kopieren

Testen und Validieren

Besorgen Sie sich das Token und validieren Sie seine Signatur mit einem Tool wie jwt.io unter Verwendung des Geheimnisses Schlüssel, der in der Authentifizierungskonfiguration angegeben ist.

Wenn Sie diese Anweisungen sorgfältig befolgen, können Sie die tokenbasierte Authentifizierung erfolgreich in Ihrem ASP.NET Core implementieren WebApi-Anwendung und sichern Sie Ihre API-Endpunkte effektiv.

Das obige ist der detaillierte Inhalt vonWie implementiert man tokenbasierte Authentifizierung in ASP.NET Core?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage