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); }
Seterusnya, konfigurasikan saluran paip pengesahan dalam kaedah Konfigurasi:
app.UseAuthentication(); app.UseAuthorization();
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()); });
Menjana Token
Untuk menjana token untuk pengesahan, gunakan kaedah BuildJwt yang ditakrifkan sebelum ini. Contohnya, dalam tindakan pengawal:
[HttpPost] public string AnonymousSignIn() { return BuildJwt(); }
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!