Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dalam Teras ASP.NET?

Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dalam Teras ASP.NET?

Linda Hamilton
Lepaskan: 2024-12-30 04:39:57
asal
622 orang telah melayarinya

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

Pengesahan Berasaskan Token dalam Teras ASP.NET

Melaksanakan pengesahan berasaskan token dalam Teras ASP.NET boleh menjadi satu cabaran, terutamanya apabila beralih daripada versi sebelumnya rangka kerja. Artikel ini menyediakan arahan terperinci tentang cara mengkonfigurasi aplikasi WebApi anda untuk pengesahan berasaskan token, menangani isu biasa dan kemas kini untuk versi Teras .NET.

Konfigurasi Permulaan

Dalam Startup.cs, konfigurasikan perkhidmatan anda dan tambahkan kod berikut dalam ConfigureServices kaedah:

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);
}
Salin selepas log masuk

Seterusnya, konfigurasikan saluran paip pengesahan dalam kaedah Konfigurasi:

app.UseAuthentication();
app.UseAuthorization();
Salin selepas log masuk

Gunakan Perisian Tengah Pengesahan

Pastikan apl. UseAuthentication() middleware diletakkan sebelum mana-mana middleware yang memerlukan maklumat pengguna, seperti app.UseMvc(). Ini akan menyemak token Pembawa dalam pengepala Kebenaran.

Dasar Kebenaran (Pilihan)

Jika mahu, nyatakan dasar kebenaran untuk menyekat akses kepada pengawal atau tindakan tertentu hanya untuk token Pembawa:

services.AddAuthorization(auth =>
{
    auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
        .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType)
        .RequireAuthenticatedUser().Build());
});
Salin selepas log masuk

Menjana Token

Untuk menjana token untuk pengesahan, gunakan kaedah BuildJwt yang ditakrifkan sebelum ini. Contohnya, dalam tindakan pengawal:

[HttpPost]
public string AnonymousSignIn()
{
    return BuildJwt();
}
Salin selepas log masuk

Pengujian dan Pengesahan

Dapatkan token dan sahkan tandatangannya menggunakan alat seperti jwt.io, menggunakan rahsia kunci yang dinyatakan dalam Konfigurasi pengesahan.

Dengan mengikut arahan ini dengan teliti, anda boleh berjaya melaksanakan berasaskan token pengesahan dalam aplikasi ASP.NET Core WebApi anda dan selamatkan titik akhir API anda dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dalam Teras ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan