Asp.net-Mvc

ASP .NET MVC 中的 Authorize 屬性是否用於身份驗證和授權?

  • June 9, 2009

我正在閱讀有關 ASP .NET MVC 的內容,並且我剛剛進入了有關 Authorize 屬性的部分。就是說 Authorize 屬性用於檢查使用者是否通過了控制器的身份驗證。這是真的?我知道該屬性旨在用於授權目的,但使用此屬性進行身份驗證也是最佳實踐嗎?

如果不是,驗證(不執行)身份驗證的最佳做法是什麼?

如果是這樣,為什麼要這樣做?我錯過了什麼嗎?

Authorize屬性可以用來檢查使用者是否登錄。它也可以用來檢查使用者是否是特定角色的成員並且具有特定的名稱。

在使用 Web 表單時,它本質上與<authorization>部分處理的事情相同。web.config

它沒有指定身份驗證方法。它像 Web 表單一樣按<authentication>部分處理。web.config

編輯(關於身份驗證和授權的說明):

身份驗證是身份驗證。也就是說,您檢查使用者是誰。這可以通過檢查使用者名和密碼、檢查 Windows 身份驗證令牌、掃描視網膜、語音辨識或其他任何方式來執行。

授權是限制滿足特定條件的使用者訪問特定資源的行為。為了能夠授權使用者訪問資源,您應該知道使用者擁有的權限。要檢查這一點,您首先應該知道使用者是誰。所以必須對使用者進行身份驗證。

本質上,一個空[Authorize]屬性進行授權,而不是身份驗證。它不會檢查你是誰。它只是檢查您驗證的人是否有權訪問該資源。但是,它的授權標準是“任何成功通過身份驗證的人”。您可以指定不同的標準。所以,它確實是在做授權,而不是身份驗證。

引用自:https://stackoverflow.com/questions/970271