ASP.NET MVC 音乐商店 - 7.成员管理和授权

转自http://www.cnblogs.com/haogj/archive/2011/11/18/2253140.html

 

目前,我们的 Store Manager 可以被任何人访问,让我们限制一下对站点管理的访问。

增加 AccountController 和 相应的视图

在全功能的 ASP.NET MVC3 Wb 应用程序与空的 ASP.NET MVC3 应用程序模板之间的区别在于,空的应用程序模板中没有包含账号控制器,我们可以从新创建的全功能的 ASP.NET MVC 应用程序中复制相应的文件,来增加账号控制器。

另外,在你下载的 MvcMusicStore-Assets.zip 文件中,也包含了账号管理的文件。

复制下面的内容到你的网站中。

  1. 复制 AccountController.cs 到 Controllers 目录中
  2. 复制 AccountModels.cs 到 Models 目录中
  3. 在 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 了。

 

时间: 2024-10-29 11:42:22

ASP.NET MVC 音乐商店 - 7.成员管理和授权的相关文章

ASP.NET MVC 音乐商店 - 3. 视图与模型

转自http://www.cnblogs.com/haogj/archive/2011/11/11/2244895.html 上一篇中有同学提到为什么不使用视图,而使用字符串,这一篇我们就开始使用视图来处理. 我们已经可以从控制器的 Action 中返回一个字符串,这可以帮助我们更好地理解 Controller 是如何工作的.但是对于创建一个 Web 程序来说还是不够的.下面我们使用更好的方法来生成 HTML,主要是通过模板来生成需要的 HTML,这就是视图所要做的.  增加视图模板 为了使用视

ASP.NET MVC 音乐商店 - 0 概览

转自http://www.cnblogs.com/haogj/archive/2011/11/08/2241710.html 这是一个系列文章,原文内容出自微软的 MusicStore. 首先对原文内容进行了简单的翻译,以方便大家参考,另外对于其中的部分内容,也进行了简单的分析,使用的 Visual Studio 也换成了中文版,这样大家看起来也更亲切一些. 下载地址:http://mvcmusicstore.codeplex.com/   MVC 音乐店是用来介绍和展示使用 ASP.NETMV

ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计

转自 http://www.cnblogs.com/haogj/archive/2011/11/20/2255680.html 我们已经完成了网站的大部分工作,但是,还有一些添加到站点的导航功能,主页,以及商店的浏览页面. 创建购物车汇总部分视图 我们希望在整个站点的页面上都可以看到购物车中的数量.                         通过创建一个部分视图,然后添加到网站的布局中就可以容易地完成, 前面看到,在 ShoppingCart 控制器中包含了一个名为 CartSummary

ASP.NET MVC 音乐商店 - 2.控制器

转自http://www.cnblogs.com/haogj/archive/2011/11/10/2241824.html 在典型的 Web 应用中,用户请求的 URL 地址通常映射到保存在网站中的文件上,例如,当用户请求 /Products.aspx 的时候,或者 /Products.php 的时候,很可能是在通过处理 Products.aspx 或者 Products.php 文件来完成任务. ASP.NET MVC 的处理方式则不同,它没有映射到文件上,相反,将这些 URL 地址映射到类

ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证

转自http://www.cnblogs.com/haogj/archive/2011/11/16/2251920.html 在前面的创建专辑与编辑专辑的表单中存在一个问题:我们没有进行任何验证.字段的内容可以不输入,或者在价格的字段中输入一些字符,在执行程序的时候,这些错误会导致数据库保存过程中出现错误,我们将会看到来自数据库的错误信息. 通过为模型类增加数据描述的 DataAnnotations ,我们可以容易地为应用程序增加验证的功能.DataAnnotations  允许我们描述希望应用

ASP.NET MVC 音乐商店 - 5. 通过支架创建编辑表单

转自 http://www.cnblogs.com/haogj/archive/2011/11/15/2249143.html 在上一章,我们已经从数据库获取数据,然后显示出来,这一章,我们将允许编辑数据.  创建 StoreManagerController 控制器 我们将要创建称为 StoreManager 的控制器,对于这个控制器,我们将通过使用 ASP.NET MVC3 中提供的脚手架功能来实现.在添加控制器的窗口中,注意需要选中 为"创建"."更新".&q

ASP.NET MVC 音乐商店 - 5 通过支架创建编辑表单 续

转自http://www.cnblogs.com/haogj/archive/2011/11/15/2249147.html 查看 StoreManager 控制器的代码 现在,Store Manager 控制器中已经包含了一定数量的代码,我们从头到尾重新过一下. 首先,在控制器中包含了标准的 MVC 控制器的代码,为了使用方便,还可以引用我们的模型类所在的命名空间 MvcMusicStore.Models.控制器还拥有了一个私有的 MusicStoreEntities 的私有成员,以方便控制器

ASP.NET MVC 音乐商店简单应用实例

我们的项目从在 Visual Studio 中的文件菜单中选择"新建",选择"项目"开始.   然后,选择 C# 中的 Web 模板组,在右边的项目模板中选择 ASP.NET MVC3 Web 应用程序,在项目的名称输入框中,输入 MvcMusicStore ,点击确定.   这时,你会到第二个对话框,允许我们设置这个项目关于 MVC 的一些设置,确认选中了"空"项目模板,视图引擎选中 Razor ,点击确定.   这样我们的项目就创建成功了!

ASP.NET MVC 音乐商店 - 9. 注册和结账

转自http://www.cnblogs.com/haogj/archive/2011/11/20/2255675.html   在这一节,我们将创建结账的控制器 CheckoutController 来收集用户的地址和付款信息,我们需要用户在结账前注册账户,因为这个控制器需要授权. 当用户点击结账 Checkout 按钮的时候,用户将会被导航到结账的处理流程中. 如果用户没有登录,将会被提示需要登录. 一旦用户成功登陆,用户就可以看到地址和付款的视图. 一旦用户填写了这个表单并提交,他们将会看