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