.net core 3 web api jwt 一直 401

来源:https://www.cnblogs.com/VAllen/archive/2020/02/24/dotnet-core-3-jwt-response-401-unauthorized.html
-Advertisement-
Play Games

最近在給客戶開發 Azure DevOps Exension, 該擴展中某個功能需要調用使用 .NET Core 3 寫的 Web Api。 在拜讀了 "Authenticating requests to your service" 之後,我給 Web Api 增加了 JWT 認證。 PS: 我沒 ...


最近在給客戶開發 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。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、拋磚引玉 既然Java中支持以多線程的方式來執行相應的任務,但為什麼在JDK1.5中又提供了線程池技術呢?這個問題大家自行腦補,多動腦,肯定沒壞處,哈哈哈。。。 說起Java中的線程池技術,在很多框架和非同步處理中間件中都有涉及,而且性能經受起了長久的考驗。可以這樣說,Java的線程池技術是Jav ...
  • 我們知道多線程可以實現同時執行多個任務(只是看起來是同時,其實是CPU的時間片切換特別快我們沒感覺而已)。 現在假設一個做飯的場景,你沒有廚具也沒有食材。你可以去網上買一個廚具,但是這段時間,你不需要閑著啊,可以同時去超市買食材。 設想這是兩個線程,主線程去買食材,然後開啟一個子線程去買廚具。但是, ...
  • 各位小伙伴們,冷月今天給大家發一波福利。我們都知道markdown編輯器非常的好用,是我們寫作的好幫手。這樣的一款好用的文章編輯器,我們怎麼才能讓自己的博客也支持呢,冷月今天來教大家如何將Markdown編輯器搬進您的博客。 首先,我們來看一下效果圖: 那麼我們要怎麼做呢,冷月這邊幫大家找到一個開源 ...
  • 詳解CopyOnWrite容器及其源碼 在jave.util.concurrent包下有這樣兩個類:CopyOnWriteArrayList和CopyOnWriteArraySet。 其中利用到了CopyOnWrite機制,本篇就來聊聊CopyOnWrite技術與Java中的CopyOnWrite容... ...
  • python3-cookbook中每個小節以問題、解決方案和討論三個部分探討了Python3在某類問題中的最優解決方式,或者說是探討Python3本身的數據結構、函數、類等特性在某類問題上如何更好地使用。這本書對於加深Python3的理解和提升Python編程能力的都有顯著幫助,特別是對怎麼提高Py ...
  • (1)集群原理 在Redis集群中,所有的Redis節點彼此互聯,節點內部使用二進位協議優化傳輸速度和帶寬。 當一個節點掛掉後,集群中超過半數的節點檢測失效時才認為該節點已失效。不同於Tomcat集群 需要使用反向代理伺服器,Redis 集群中的任意節點都可以直接和Java客戶端連接。Redis 集 ...
  • 安裝JDK1.8,安裝時會安裝jdk、jre。 如果只是在IDEA中寫寫代碼,安裝完jdk,在IDEA中指定jdk路徑就可以了。 如果要在命令行下執行jdk的命令,比如java、javac,或者要使用tomcat等依賴jdk的,就需要配置jdk的環境變數。 jdk環境變數的配置 1、JAVA_HOM ...
  • PPT導出圖片質量太差?簡單操作直接導出印刷質地圖片 ​ PPT不僅可以用於展示文檔,還可以用於簡單圖片合成處理,同時,PPT文檔還可以全部導出為圖片. 預設情況下,PPT導出的圖片為96DPI,辛苦做的圖片無法適應很多場合的使用。其實,在windows 下只需要一個小小的設置,就可以導出300DP ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...