第 7 部分:成員資格和授權
作者 :JonGaloway
MVC 音樂市集是一個教學課程應用程式,會介紹並說明如何使用 ASP.NET MVC 和 Visual Studio 進行 Web 開發。
MVC Music Store 是輕量型範例商店實作,可線上銷售音樂相簿,並實作基本網站管理、使用者登入和購物車功能。
本教學課程系列詳細說明建置 ASP.NET MVC 音樂市集範例應用程式所採取的所有步驟。 第 7 部分涵蓋成員資格和授權。
我們的市集管理員控制器目前可供造訪網站的任何人存取。 讓我們變更此專案,以限制網站管理員的許可權。
新增 AccountController 和 Views
完整 ASP.NET MVC 3 Web 應用程式範本與 ASP.NET MVC 3 空白 Web 應用程式範本之間的差異在於空白範本不包含帳戶控制器。 我們將從從完整 ASP.NET MVC 3 Web 應用程式範本建立的新 ASP.NET MVC 應用程式複製一些檔案,以新增帳戶控制器。
使用完整的 ASP.NET MVC 3 Web 應用程式範本,建立新的 ASP.NET MVC 應用程式,並將下列檔案複製到專案中的相同目錄中:
- 複製 Controllers 目錄中的 AccountController.cs
- 複製 Models 目錄中的 AccountModel
- 在 Views 目錄內建立帳戶目錄,並在 中複製所有四個檢視
變更 Controller 和 Model 類別的命名空間,使其以 MvcMusicStore 開頭。 AccountController 類別應該使用 MvcMusicStore.Controllers 命名空間,而 AccountModels 類別應該使用 MvcMusicStore.Models 命名空間。
注意:這些檔案也可以在MvcMusicStore-Assets.zip下載中取得,我們會在教學課程開始時複製網站設計檔案。 成員資格檔案位於 Code 目錄中。
更新的解決方案看起來應該如下所示:
使用 ASP.NET 設定網站新增系統管理使用者
在網站中要求授權之前,我們必須建立具有存取權的使用者。 建立使用者最簡單的方式是使用內建 ASP.NET 組態網站。
按一下方案總管中的圖示,以啟動 ASP.NET 設定網站。
這會啟動設定網站。 按一下主畫面上的 [安全性] 索引標籤,然後按一下畫面中央的 [啟用角色] 連結。
按一下 [建立或管理角色] 連結。
輸入 「系統管理員」作為角色名稱,然後按 [新增角色] 按鈕。
按一下 [上一步] 按鈕,然後按一下左側的 [建立使用者] 連結。
使用下列資訊填入左側的使用者資訊欄位:
欄位 | 值 |
---|---|
使用者名稱 | 系統管理員 |
密碼 | password123! |
確認密碼 | password123! |
電子郵件 | (任何電子郵件地址都會運作) |
安全性問題 | (您想要的任何) |
安全性解答 | (您想要的任何) |
注意:您當然可以使用任何您想要的密碼。 預設密碼安全性設定需要長度為 7 個字元的密碼,且包含一個非英數位元。
選取此使用者的系統管理員角色,然後按一下 [建立使用者] 按鈕。
此時,您應該會看到一則訊息,指出使用者已成功建立。
您現在可以關閉瀏覽器視窗。
角色型授權
現在,我們可以使用 [Authorize] 屬性來限制 StoreManagerController 的存取權,指定使用者必須是系統管理員角色,才能存取 類別中的任何控制器動作。
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
注意:[授權] 屬性可以放在特定的動作方法,以及控制器類別層級。
現在流覽至 /StoreManager 會顯示 [登入] 對話方塊:
使用新的系統管理員帳戶登入之後,就能夠如往常一樣移至 [相簿編輯] 畫面。