services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
services.AddAuthentication()
.AddJwtBearer("Bearer", options =>
{
options.Authority = Configuration["Auth0:Authority"];
options.Audience = Configuration["Auth0:ApiIdentifier"];
})
.AddCookie("Cookies", options =>
{
options.Cookie.Name = "MyApp.Cookies";
options.ExpireTimeSpan = new TimeSpan(0, 30, 0); //Cookie过期时间为30分钟
});
app.UseAuthentication();
app.UseAuthorization();
[Authorize(AuthenticationSchemes = "Bearer")]
public class UsersController : Controller
{
//...
}
以上方法可以避免重复声明的问题,并且可以针对每个身份验证方案进行不同的认证配置。