身份验证 – 如何仅为ASP.NET 5中的受保护操作添加令牌验证(ASP.NET Core)
发布时间:2020-05-26 05:38:23 所属栏目:asp.Net 来源:互联网
导读:我在我的应用程序中添加了一个JWT中间件: app.UseJwtBearerAuthentication(options = { options.AutomaticAuthenticate = true;} ) 现在如果我的令牌没有验证(例如已过期),我仍然会收到生命周期验证未通过的错误.有没有办法让中间件仅为受保护资源验证令牌?
|
我在我的应用程序中添加了一个JWT中间件: app.UseJwtBearerAuthentication(options => { options.AutomaticAuthenticate = true;} )
现在如果我的令牌没有验证(例如已过期),我仍然会收到生命周期验证未通过的错误.有没有办法让中间件仅为受保护资源验证令牌?如果没有,那么我应该如何以及在哪里调用自己的中间件(将令牌读入HttpContext.User)? P.S这是我添加保护的方式: services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
这就是我允许公共访问的方式: [HttpGet]
[AllowAnonymous]
public string Get(int id)
{
}
澄清:如果没有令牌,这将有效,但如果令牌无效(例如已过期),即使公共资源也无法访问,并且将抛出500(由于某些内部错误导致401应该真的存在). 解决方法首先,您需要通过在JWT承载选项中将AutomaticAuthentication设置为false来禁用自动身份验证.要确保为特定操作调用JWT承载中间件,您可以使用AddAuthenticationSchemes创建自己的授权策略: public void ConfigureServices(IServiceCollection services) {
services.AddAuthorization(options => {
options.AddPolicy("API",policy => {
policy.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme);
policy.RequireAuthenticatedUser();
});
});
}
然后,使用Authorize属性修饰控制器操作: [Authorize(Policy = "API")]
[HttpGet("your-action")]
public IActionResult Action() {
...
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC – 我可以为同一个动作创建多个
- asp.net – 如何从相同的解决方案的MVC项目调试Web API项目
- asp.net-mvc – 如何在我的项目中实现强大的每个请求模式,同
- asp.net – 您没有使用批量加载语句的权限
- asp.net-mvc – ASP.NET MVC将数据从视图传递给控制器
- 实时监控ASP.NET Web应用程序的工具和方法?
- asp.net-mvc-3 – ASP MVC 3测试控制器调用ModelState.IsVa
- 从未调用ASP.NET Web API自定义JsonConverter
- asp.net-mvc – .net MVC控制器动作方法的属性
- ASP到ASP.NET会话变量
推荐文章
站长推荐
- ASP.NET MVC4 Google oAuth
- ASP.NET MVC5 OWIN:通过Facebook登录后,为什么U
- asp.net-mvc-4 – htmlHelper与局部视图
- asp.net-mvc – ASP MVC友好的URL和相对路径图像
- asp.net-mvc-3 – 如何根据当前页面和/或主页在O
- asp.net-web-api – ASP身份OAuth令牌 – 我应该
- asp.net-mvc-4 – ASP.NET Web API的自定义MVC A
- 在ASP.NET捆绑和缩小中将样式的URL转换为CDN URL
- ASP.NET Core 1.0 ConfigurationBuilder().AddJs
- asp.net-mvc – 向RouteValueDictionary添加复杂
热点阅读
