现在的问题是任何用户都可以通过StoreManager控制器来访问我们的书籍管理页面。接下来让我们添加权限设置,限定只有管理员可以访问该页面。
7.1 追加Account(帐户)控制器及视图
在ASP.NET MVC 3中,一个完整的的Web应用程序模板与空的Web应用程序模板的区别之一就是空的模板中不包括Account(帐户,或者说用户)控制器。我们的做法是 任意新建一个具有完整的ASP.NET MVC3 Web应用程序模板的应用程序,然后从中拷贝一些文件过来。
任意创建一个具有完整模板的ASP.NET MVC3 Web应用程序,然后将下列文件拷贝到本应用程序的相同位置处。
1.拷贝AccountController.cs到Controllers文件夹下。
2.拷贝AccountModels.cs到Models文件夹下。
3.在Views文件夹下创建Account文件夹,然后将新的应用程序中Account文件夹中的四个视图模板文件拷贝进来。
拷贝完毕后的解决方案资源管理器应该如图7-1所示。
图7-1 文件拷贝完毕后的解决方案资源管理器
修 改AccountController.cs与AccountModels.cs文件中的命名空间,将AccountController.cs文件中的 命名空间修改为MvcBookStore.Controllers,将AccountModels.cs文件中的命名空间修改为 MvcBookStore.Models。
7.2 使用ASP.NET设置网站追加一个管理员
在进行验证访问用户是否为管理员用户之前,我们首先需要创建管理员用户。创建管理员用户的最简单的方法是使用ASP.NET内置的设置网站。
点击解决方案资源管理器中如图7-2所示的图标来登陆ASP.NET设置网站。
图7-2 点击图标登陆ASP.NET设置网站
登陆之后,点击主页中的“安全”标签。然后点击“启用角色”链接,如图7-3所示。
當然在vs2012頁面中。點擊項目->asp.net配置 進入asp.net網站管理工具頁面
图7-3 在ASP.NET设置网站中启用角色
点击“创建或管理角色”链接,如图7-4所示。
图7-4 在ASP.NET设置网站中创建角色
在新角色名称文本框中输入角色名“管理员”,然后点击“添加角色”按钮。如图7-5所示。
图7-5 在ASP.NET设置网站中添加管理员角色
点击“上一步”按钮,然后点击左边的“创建用户”链接。如图7-6所示。
图7-6 在ASP.NET设置网站中创建用户
在左边的输入文本框中填入类似如下表中所示的信息。
文本框 |
值 |
User Name |
admin |
Password |
password& |
Confirm Password |
Password& |
|
(填入一个邮件地址) |
Seurity Question |
(填入任意内容) |
Security Answer |
(填入任意内容) |
为这个用户选择管理员角色,然后点击“创建用户”按钮,如图7-7所示。
图7-7在ASP.NET设置网站中创建用户
这时,你将看见一条信息,标识该用户已被创建成功。
图7-8 标识用户创建成功的信息
现在你可以将这个浏览器窗口给关闭掉了。
7.3 基于角色的用户验证
现在我们可以使用[Authorize]属性来限制只有管理员可以访问StoreManager控制器了。代码如下所示。
[Authorize(Roles = "管理员")] public class StoreManagerController : Controller { // Controller code here }
请注意,[Authorize]属性即可以用来限制对于整个控制器的访问,也可以用来限定对于控制器中某个action方法的访问。
现在访问“/StoreManager”URL地址时,会首先出现一个登陆对话框,如图7-9所示。
图7-9 访问StoreManager控制器必须首先要求登陆
使用我们创建的用户身份进行登陆,将可以继续看见书籍列表画面。