文章目錄
- 增加 AccountController 和 相應的視圖
- 使用 ASP.NET 網站組態工具增加管理員帳號
- 基於角色的授權
MusicStore 項目的完整配套視頻!
目前,我們的 Store Manager 可以被任何人訪問,讓我們限制一下對網站管理的訪問。
增加 AccountController 和 相應的視圖
在全功能的 ASP.NET MVC3 Wb 應用程式與空的 ASP.NET MVC3 應用程式模板之間的區別在於,空的應用程式模板中沒有包含帳號控制器,我們可以從新建立的全功能的 ASP.NET MVC 應用程式中複製相應的檔案,來增加帳號控制器。
另外,在你下載的 MvcMusicStore-Assets.zip 檔案中,也包含了帳號管理的檔案。
複製下面的內容到你的網站中。
- 複製 AccountController.cs 到 Controllers 目錄中
- 複製 AccountModels.cs 到 Models 目錄中
- 在 Views 目錄中建立 Account 目錄,然後複製相應的四個視圖。
注意修改控制器和模型類的命名空間為 MvcMusicStore。AccountController 類應該為 MvcMusicStore.Controllers 命名空間,AccountModels 類應用使用 MvcMusicStore.Models 命名空間。
更新之後的解決方案看起來如下所示:
使用 ASP.NET 網站組態工具增加管理員帳號
在我們授權訪問網站之前,需要先建立一個管理員帳號,最簡單的方式就是使用內建的 ASP.NET 網站管理工具建立。
在解決方案管理器上,點擊網站組態工具
稍等片刻,將會彈出一個瀏覽器視窗,點擊首頁中的安全選項卡,然後,點擊螢幕中間的“啟用角色”連結。
點擊“建立或管理角色”連結。
在角色名稱的輸入框中輸入 “Administrator”,點擊增加角色按鈕。
點擊返回按鈕,點擊螢幕左邊建立使用者的連結。
使用下面的資訊填寫使用者資料。
Field Value
User Name Administrator
Password password123!
Confirm Password password123!
E-mail (any e-mail address will work)
Security Question (whatever you like)
Security Answer (whatever you like)
注意:你可以使用任何你願意的口令,但是,預設的密碼規則要求口令至少為 7 個字元,其中包含至少一個非字母和數位字元。
注意選擇 Administrator 角色,
使用者建立成功了。
現在,你可以關掉這個視窗。
基於角色的授權
現在,我們可以使用 [Authorize] 標註來限制對 StoreManager 控制器的訪問了,設定訪問 StoreManager 任何 Action 的使用者必須擁有 Administrator 的角色。
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
注意,[Authorize] 也可以用在 Action 方法上。
現在瀏覽 /StoreManager ,將會被導航到登陸頁面上。
使用具有 Administrator 角色的帳號登陸之後,就可以進入 StoreManager 了。