如何在aspnet.core web api中validationJWT令牌?
我创建了自定义中间件类来validationJWT令牌。 我在configure方法中的app.AddMvc()
之前调用此方法。 ***
我想知道我应该添加哪些东西来配置服务来使用JWTvalidation我的Web API? 我在Controller类中添加了[Authorize]
我是否需要调用我的中间件类,它首先在Configure方法中validationJWT令牌? 或者我应该调用App.UseAuthentication()
我使用以下顺序:
app.UseAuthentication(); app.MessageHandlerMiddleware(); app.UseMvc();
我是.net web API实现的新手。 你能帮帮我吗?
从我的一个答案中,您可以看到我们如何传递JWT令牌以及代码如何查找经典的.NET(非核心)ASP.NET WebAPI 2。
没有太多差异,ASP.NET Core的代码看起来很相似。
关键方面是 – 当您在启动时添加JWT配置时,应用程序会自动处理validation 。
services .AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters() { ValidateIssuerSigningKey = true, ValidateLifetime = true, IssuerSigningKey = _configuration.GetSymmetricSecurityKey(), ValidAudience = _configuration.GetValidAudience(), ValidIssuer = _configuration.GetValidIssuer() }; });
(使用上面的链接查看GetSymmetricSecurityKey
, GetValidAudience
, GetValidIssuer
ext。方法的实现)
同样非常重要的部分:
services.AddAuthorization(auth => { auth .AddPolicy( _configuration.GetDefaultPolicy(), new AuthorizationPolicyBuilder() .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser().Build() ); });
- VS 2017 .NET Core BinaryFormatter
- EF Core中的多对多关系映射
- 使用Postman上传ASP核心WebApi测试文件
- AWS Lambda环境变量和dependency injection
- 如何在类库中添加配置文件,后跟.NET Core 1.1的连接字符串
- 如何在Visual Studio 2017中增加运行.NET Core 1.x / 2.x测试的堆大小?
- Asp.Net Core:在控制器外部使用内存缓存
- VS.NET 2017强制在ASP.NET 2.0 Core应用程序中使用StackExchange.Redis 1.2.4.0
- .Net核心/控制台应用程序/配置/ XML