我有一個使用OWIN中間件進行JWT認證的Asp.net webapi。 我的資源服務器和授權服務器是相同的。我能夠從令牌端點獲取令牌。已成功命中ValidateClientAuthentication和GrantResourceOwnerCredentials方法。 但是,當我嘗試訪問一個受保護的(使用[Authorize])api(授權頭設置爲承載令牌)時,我只會得到「該請求的授權已被拒絕」。無法弄清楚OWIN是否攔截客戶端對api的請求
我已經重寫了ValidateAuthorizeRequest方法來查看它是否在通過Postman進行api調用時被命中。然而它從未被擊中。
我想弄清楚一種方法,看看是否在所有的OWIN攔截調用API的調用,而不是調用令牌端點。
是否有任何方法或方法重寫,以便我可以調試並查看管道中哪些地方的請求被拒絕以及爲什麼。
截至目前,我通過郵遞員打電話並獲得未經授權的回覆。
任何幫助將不勝感激。
兩個問題:1。你綁定在owin啓動類的WebAPI配置? 2.可以在沒有[Authorize] –
的情況下訪問api 1)是的,我在owin啓動類中綁定了webapi配置,如另一個問題中發佈的代碼所示。 2)是的,當我刪除它的可訪問的[授權]屬性。 – tariq
@MarcusH我根據自那時以來的嘗試對問題進行了更新。我已覆蓋OAuthAuthorizationServerProvider類的MatchEndpoint方法。每個請求都會調用此方法以查看請求是在標記端點還是授權端點上。令我驚訝的是IsTokenEndpoint實現時,我擊中的令牌,但IsAuthorizeEndpoint從來沒有真正的其他請求,我想它應該是。意味着它沒有檢測到呼叫在授權端點上 – tariq