.net core 3 web api jwt 一直 401
最近在给客户开发 Azure DevOps Exension, 该扩展中某个功能需要调用使用 .NET Core 3 写的 Web Api。
在拜读了 Authenticating requests to your service 之后,我给 Web Api 增加了 JWT 认证。
PS: 我没有照抄代码,问题出现了.....问题出现了.....问题出现了.....
Postman 请求该 Web Api, 一直报 401 Unauthorized, 无论我换何种姿势请求, 都是 401 Unauthorized.
心中哪个老火啊, 上 jwt.io 校验了一下,是合法通过的,就是不知道为毛 Postman 不通过.
百思不得其解,度娘了一下, 有个标题引起了我的注意——.net core 3 web api jwt 一直 401
进去看了一眼,恍然大悟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
答案竟然是:
在 app.UseAuthorization(); 之前加上 app.UseAuthentication(); 就可以了。
心中十万个草泥马在奔腾,因为这两个方法签名的单词太接近了,而且我英语很烂所以对相似的单词都是一眼略过,以为是一样的就没有照搬添加 app.UseAuthentication();。
结果乌龙就发生了...
以下内容转载自:https://www.iteye.com/blog/lucky16-2020198
认证 (authentication) 和授权 (authorization) 的区别
以前一直分不清 authentication 和 authorization,其实很简单,举个例子来说:
你要登机,你需要出示你的身份证和机票,身份证是为了证明你张三确实是你张三,这就是 authentication;
而机票是为了证明你张三确实买了票可以上飞机,这就是 authorization。
在 computer science 领域再举个例子:
你要登陆论坛,输入用户名张三,密码1234,密码正确,证明你张三确实是张三,这就是 authentication;
再一check用户张三是个版主,所以有权限加精删别人帖,这就是 authorization。
.net core 3 web api jwt 一直 401的更多相关文章
- .NET Core 3 Web Api Cors fetch 一直 307 Temporary Redirect
.NET Core 3 Web Api Cors fetch 一直 307 Temporary Redirect 继上一篇 .net core 3 web api jwt 一直 401 为添加JWT- ...
- angular4和asp.net core 2 web api
angular4和asp.net core 2 web api 这是一篇学习笔记. angular 5 正式版都快出了, 不过主要是性能升级. 我认为angular 4还是很适合企业的, 就像.net ...
- 温故知新,使用ASP.NET Core创建Web API,永远第一次
ASP.NET Core简介 ASP.NET Core是一个跨平台的高性能开源框架,用于生成启用云且连接Internet的新式应用. 使用ASP.NET Core,您可以: 生成Web应用和服务.物联 ...
- 使用 ASP.NET Core 创建 Web API及链接sqlserver数据库
创建 Web API https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.0& ...
- 使用angular4和asp.net core 2 web api做个练习项目(一)
这是一篇学习笔记. angular 5 正式版都快出了, 不过主要是性能升级. 我认为angular 4还是很适合企业的, 就像.net一样. 我用的是windows 10 安装工具: git for ...
- 使用angular4和asp.net core 2 web api做个练习项目(二), 这部分都是angular
上一篇: http://www.cnblogs.com/cgzl/p/7755801.html 完成client.service.ts: import { Injectable } from '@an ...
- 使用angular4和asp.net core 2 web api做个练习项目(四)
第一部分: http://www.cnblogs.com/cgzl/p/7755801.html 第二部分: http://www.cnblogs.com/cgzl/p/7763397.html 第三 ...
- 基于ASP.NET Core 创建 Web API
使用 Visual Studio 创建项目. 文件->新建->项目,选择创建 ASP.NET Core Web 应用程序. 基于 ASP.NET Core 2.0 ,选择API,身份验证选 ...
- ASP.NET Core Restful Web API 相关资源索引
GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...
随机推荐
- context:component-scan标签的诠释
XML中配置context:component-scan时,spring会自动的扫描这个包下被这些注解标识的类@Component,@Service,@Controller,@Repository,同 ...
- 从0开发3D引擎(八):准备“搭建引擎雏形”
大家好,现在开始本系列的第三部分,按照以下几个步骤来搭建引擎雏形: 1.分析引擎的需求 2.实现最小的3D程序 3.从中提炼引擎原型 4.一步一步地对引擎进行改进,使其具备良好的架构 5.实现与架构相 ...
- typescript step by step interface class
- CQOI十二省联考游记
Day 0 看似稳如老狗的我实则慌得一逼 看了一上午的CRT,一个字没看进去 我反复安慰自己:我才高一,我才高一 但是,明年的联赛会不会跟今年一样高呢? 明年的心态会不会有现在这么好呢? 明年同届的d ...
- 解决delete 删除sql语句,标识还保留删除之前的问题
我有一些数据,想要删除,首先想到的是delete,但是它会保留之前的标识,后来想用truncate来进行删除,但是,它会全部删除,并且不能加条件,只能回过头使用delete,以下是解决delete删除 ...
- Jenkins环境配置(集成自动化程序)
一.下载 直接到官网https://jenkins.io/download/ 进行下载 二.安装 1.在浏览器地址栏输入:http://loclhost:8081 运行Jenkins,首次进入会提示 ...
- Oracle数据库、实例、用户、表空间、表之间的关系
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...
- e.detail.value 获取input的值
inputId(e) { this.setData({ inputId: e.detail.value }) },
- CAD制图系列之椭圆画法标注
今天我将做一个极轴是92,150的椭圆画法和标注方法 1.打开2014版本CAD制图,快捷键EL,回车: 2.自己随便定一个点 3.输入第一个值,也就是短轴--横轴(输入实际长度,不需要除以二)并且鼠 ...
- FFMPEG结构体分析:AVCodecParameters
/** * This struct describes the properties of an encoded stream. * * sizeof(AVCodecParameters) is no ...