共用方式為


第 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 應用程式,並將下列檔案複製到專案中的相同目錄中:

  1. 在 Controllers 目錄中複製AccountController.cs
  2. 將 AccountModels 複製到 Models 目錄中
  3. 在 Views 目錄內建立 Account 目錄,並從中複製所有四個視圖

變更控制器和模型類別的命名空間,使其以MvcMusicStore開頭。 AccountController 類別應該使用MvcMusicStore.Controllers 命名空間,而 AccountModels 類別應該使用MvcMusicStore.Models 命名空間。

注意事項:這些檔案也可以從 MvcMusicStore-Assets.zip 下載中取得,我們在教程開始時複製了網站設計檔案。 成員資格檔案位於 Code 目錄中。

更新的解決方案看起來應該如下所示:

[方案總管] 窗格的螢幕快照,其中已醒目提示 [帳戶控制器點 C S]、[帳戶模型] 點 CS,以及 / [帳戶/] 資料夾中的檔案。

使用 ASP.NET 設定網站新增管理使用者

在網站中要求授權之前,我們必須建立具有存取權的使用者。 建立使用者最簡單的方式是使用內建 ASP.NET 組態網站。

按兩下 [方案總管] 中的圖示,以啟動 ASP.NET 組態網站。

[方案總管] 視窗的螢幕快照,其中以紅色矩形突出顯示地球和鎚子圖示。

這會啟動配置網站。 按兩下主畫面上的 [安全性] 索引標籤,然後按兩下畫面中央的 [啟用角色] 連結。

組態網站的螢幕快照,其中顯示 [角色] 區段和紅色矩形中醒目提示的 [啟用角色] 連結。

按兩下 [建立或管理角色] 連結。

組態網站的螢幕快照,其中顯示 [角色] 區段,以及紅色矩形中反白顯示的 [建立或管理角色] 連結。

輸入 “Administrator” 作為角色名稱,然後按 [新增角色] 按鈕。

設定視窗的螢幕快照,其中 [新增角色名稱] 欄位顯示 [系統管理員] 並被紅色箭號標示。

按一下 [上一步] 按鈕,然後按一下左側的 [建立使用者] 連結。

組態網站的螢幕快照,其中顯示 [使用者] 區段和紅色矩形中反白顯示的 [建立使用者] 連結。

使用下列資訊填入左側的使用者資訊欄位:

欄位
用戶名稱 管理員
密碼
確認密碼
電子郵件 (任何電子郵件位址都將正常運作)
安全性問題 (無論你喜歡什麼)
安全性回應 (無論你喜歡什麼)

附註

  • 在上表中,密碼已省略。
  • 當然,您可以使用任何您想要的密碼。 默認密碼安全性設定需要長度為 7 個字元的密碼,且包含一個非英數位元。

選取此使用者的系統管理員角色,然後按兩下 [建立使用者] 按鈕。

設定網站的截圖,其中顯示 [角色] 區段的 [系統管理員角色] 複選框已勾選,並用紅色矩形高亮顯示。

此時,您應該會看到訊息,指出使用者已成功建立。

組態網站的螢幕快照,其中顯示用戶帳戶建立成功完成的訊息。

您現在可以關閉瀏覽器視窗。

角色型授權

現在,我們可以使用 [Authorize] 屬性來限制 StoreManagerController 的存取權,並指定用戶必須是系統管理員角色,才能存取 類別中的任何控制器動作。

[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
    // Controller code here
}

附注:[授權] 屬性可以放在特定的動作方法上,也可以放在控制器類別層級。

現在流覽至 /StoreManager 會顯示 [登入] 對話框:

音樂市集網頁的螢幕快照,其中顯示 [登入] 對話框的使用者名稱和密碼文字字段。

使用新的系統管理員帳戶登入之後,我們就可以如先前一樣移至 [專輯編輯] 畫面。