2017-07-19 139 views
3

ControllerBase類有Challenge方法,返回ChallengeResult類的對象。 CookieAuthenticationOptions類有AutomaticChallenge屬性。我認爲ChallengeResult與外部登錄有關。但它是如何工作的? 「挑戰」這個詞來自哪裏?這裏面有什麼內容。「挑戰」一詞代表什麼?

回答

1

A ChallengeResultActionResult,它在執行時挑戰給定的認證處理程序。或者如果沒有指定,則默認質詢處理程序。 Source code for ChallengeResult

AutomaticChallenge(在ASP.NET Core 1.x中)是表示這是缺省質詢處理程序的設置。這意味着如果沒有專門命名驗證方案,它將被調用。

一個挑戰基本上是一種說法:「我不知道這個用戶是誰,請驗證他們的身份」。所以如果觸發的認證處理程序是例如Facebook身份驗證處理程序,它將通過發送重定向到Facebook身份驗證頁面來應對挑戰。本地帳戶身份驗證處理程序可能會向本地登錄頁面發出重定向。

您可以在Facebook驗證使用(以及Microsoft和Google身份驗證)的OAuthHandler中看到此操作。