[英]How to use custom authentication/authorization in an ASP.NET Core MVC app that communicates with a Web API?
[英]How to use external authentication services on a ASP.NET MVC Web Api
我正在使用Visual Studio 2013,C#和.NET Framework 4.5.1開發ASP.NET MVC Web Api。
我在讀這篇文章 ,這很有趣。 它僅討論ASP.NET MVC應用程序,沒有提及如何使用Web Api實現它。
我想我可以將其與Web Api一起使用,但是我不知道如何使用,因為正如我在文章中所讀到的那樣,我將需要一個登錄頁面,而Web api沒有一個。
如果我將通過手機(iOS,Android,Windows Phone等)使用該Web API; 我需要做什么?
也許我需要在移動應用程序上登錄表單,或者我需要在Web API上登錄頁面以允許在Google,Facebook等上登錄。
有什么建議嗎?
@VansFannel,這是一個古老的問題,我想您已經繼續前進,但是我將其留在這里供將來的求職者使用。
您是正確的,它沒有提供登錄頁面,但是提供了登錄頁面本身將使用的內容。
開始之前,請下載一個名為PostMan的Chrome插件。 在使用過程中,我將顯示一些屏幕截圖。 我已經設置了一個基本的WebAPI,其中仍帶有示例Values控制器,但是受[Authorize]保護。 對於本示例,我正在http:// localhost:54211上運行示例WebAPI。
這是一個高級過程:
我猜您在這個新數據庫中還沒有任何用戶,但是如果您這樣做,請跳過此步驟。 否則,這就是在沒有UI的情況下創建它們的方式。
如果正文為空並且標頭狀態為200,則說明成功:
如果失敗,您將返回標頭狀態錯誤400和正文中的某種錯誤,例如:
好的,我們在數據庫中有一個用戶,讓我們通過WebAPI進行身份驗證。
在服務器的結果中,如果成功(狀態200),您將獲得所謂的“承載者令牌”-位於“ access_token”字段中,如下所示:
為了進行測試,請將令牌值復制到剪貼板(在您的應用中,您可以將其存儲在變量中)。
如果您嘗試在未通過身份驗證的情況下調用[Authorize]受保護的方法,則會看到類似以下內容:
但是您已經通過身份驗證了,對嗎? 那它為什么不認識你呢? 因為它是基於REST的並且是無狀態的-通話完成后不再認識您。 因此, 每次撥打電話時 ,您都必須“提醒”您的身份。 為此,您可以傳遞每個請求之前收到的令牌。
如果您獲得成功(200分),則可以檢查它的身體數據,它將得到您的回應:
就是這樣完成的! 希望對您或其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.