在ASP.NET Core中使用多个身份验证方案可以为应用程序提供更灵活的安全选项。在本例中,我们将介绍如何同时使用JWT和Cookie身份验证方案。
services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = "yourIssuer", ValidAudience = "yourAudience", IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("yourKey")) }; }) .AddCookie();
此代码将启用JWT和Cookie身份验证方案,并将默认身份验证方案设置为JWT。
app.UseAuthentication();
[Authorize] [Route("api/[controller]")] [ApiController] public class ExampleController : ControllerBase { //其他代码 }
var claims = new List
var key = new