身份验证 – 如何仅为ASP.NET 5中的受保护操作添加令牌验证(ASP.
发布时间:2020-12-15 19:51:00 所属栏目: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 IIS7获取每个请求的CPU使用率
- 有没有办法为ASP.Net Web应用程序安装程序创建补丁?
- 没有aspx文件扩展名的ASP.NET网页
- asp.net-mvc – ASP.NET MVC身份默认实现
- asp.net-mvc – 允许操作和视图和模型的高度变化
- asp.net – 身份使用Web API授权属性角色
- asp.net – <%#Eval(“State”)%>或<%#DataBin
- asp.net-mvc – 未找到或构造错误的路由
- asp.net-mvc-3 – OutputCache属性和jQuery Ajax没有缓存
- 我的团队成员不支持使用asp.net中提供的验证控件(用于Web应
推荐文章
站长推荐
- asp.net – 会话超时在IIS 7中如何工作?
- ASP Classic – XML Dom
- asp.net-mvc – 无论如何让mvc框架验证我的actio
- asp.net – visio服务器端自动化的替代方案
- asp.net – 适用于多个用户的EWS通知中心
- asp.net-mvc – 将azure MVC应用程序置于维护模式
- asp.net-web-api – Hot Towel / Durandal / Bre
- asp.net-mvc – HttpPost和HttpGet属性在MVC:为
- 在ASP.NET中创建搜索功能
- asp.net – AjaxFileUpload不会触发OnUploadComp
热点阅读