ASP.NET MVC3书店--第七节 用户及身份验证(转)

http://blog.sina.com.cn/s/blog_6ad539a90100r7jx.html

现在的问题是任何用户都可以通过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所示。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

图7-1 文件拷贝完毕后的解决方案资源管理器

    修改AccountController.cs与AccountModels.cs文件中的命名空间,将AccountController.cs文件中 的命名空间修改为MvcBookStore.Controllers,将AccountModels.cs文件中的命名空间修改为 MvcBookStore.Models。

7.2    使用ASP.NET设置网站追加一个管理员

    在进行验证访问用户是否为管理员用户之前,我们首先需要创建管理员用户。创建管理员用户的最简单的方法是使用ASP.NET内置的设置网站。

    点击解决方案资源管理器中如图7-2所示的图标来登陆ASP.NET设置网站。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

图7-2 点击图标登陆ASP.NET设置网站

    登陆之后,点击主页中的“安全”标签。然后点击“启用角色”链接,如图7-3所示。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

图7-3 在ASP.NET设置网站中启用角色

    点击“创建或管理角色”链接,如图7-4所示。
ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证
图7-4 在ASP.NET设置网站中创建角色

    在新角色名称文本框中输入角色名“管理员”,然后点击“添加角色”按钮。如图7-5所示。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

图7-5 在ASP.NET设置网站中添加管理员角色

    点击“上一步”按钮,然后点击左边的“创建用户”链接。如图7-6所示。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

图7-6 在ASP.NET设置网站中创建用户

    在左边的输入文本框中填入类似如下表中所示的信息。

 

文本框

User Name

admin

Password

password&

Confirm Password

Password&

E-mail

(填入一个邮件地址)

Seurity Question

(填入任意内容)

Security Answer

(填入任意内容)

 

    为这个用户选择管理员角色,然后点击“创建用户”按钮,如图7-7所示。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

7-7ASP.NET设置网站中创建用户

    这时,你将看见一条信息,标识该用户已被创建成功。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证

图7-8 标识用户创建成功的信息

    现在你可以将这个浏览器窗口给关闭掉了。

7.3    基于角色的用户验证

    现在我们可以使用[Authorize]属性来限制只有管理员可以访问StoreManager控制器了。代码如下所示。

[Authorize(Roles = "管理员")]

public class StoreManagerController : Controller

{

    // Controller code here

}

    请注意,[Authorize]属性即可以用来限制对于整个控制器的访问,也可以用来限定对于控制器中某个action方法的访问。

    现在访问“/StoreManager”URL地址时,会首先出现一个登陆对话框,如图7-9所示。

ASP.NET <wbr>MVC3书店--第七节 <wbr>用户及身份验证
图7-9 访问StoreManager控制器必须首先要求登陆

    使用我们创建的用户身份进行登陆,将可以继续看见书籍列表画面。

 

posted @ 2011-07-05 12:06  quietwalk  阅读(1397)  评论(0编辑  收藏  举报