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所示。

图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所示。

图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&

E-mail

(填入一个邮件地址)

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控制器必须首先要求登陆

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

转载于:https://www.cnblogs.com/quietwalk/archive/2011/07/05/2098167.html

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

  1. ASP.NET MVC3书店--第五节 表单编辑(第二部分)(转)

    http://blog.sina.com.cn/s/blog_6ad539a90100r469.html 5.5 使用HTML帮助器来截短文字 使用我们的StoreManager控制器中的Index方 ...

  2. java实现 mysql 身份认证,java-从Filter中的数据库对用户进行身份验证是一种好习惯吗?...

    我正在为Android App创建Rest API(Spring Boot项目).从数据库对用户进行身份验证的理想方法应该是什么? 1.在控制器类中查询数据库 2.在过滤器类中查询数据库 3.使用Sp ...

  3. 在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证

    API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口.对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证.权限验证等等.Kube ...

  4. 使用Xamarin.Android中的Google登录OAuth 2.0对用户进行身份验证

    什么是用户认证? (What is User Authentication?) There is a user base associated with every app that is avail ...

  5. Poloniex要求用户进行身份验证

    点击上方 "蓝色字" 可关注我们! 暴走时评:美国知名加密货币交易所Poloniex最近发布通知,将要求用户进行身份验证,完成新账户的注册.此举的目的在于确保交易所的合规性,按照金 ...

  6. ASP.NET MVC3书店--第二节 控制器(转)

    http://blog.sina.com.cn/s/blog_6ad539a90100qe6x.html 在传统的Web应用程序中,输入的URL通常被映射为一个磁盘文件.例如:一个类似"/P ...

  7. ASP.NET MVC3书店--第九节 注册与下订单(第一部分)(转)

    http://blog.sina.com.cn/s/blog_6ad539a90100rag1.html 在本节中,我们将要创建一个下订单控制器,该控制器将获取购买者的收货地址与付款信息.在下订单之前 ...

  8. ASP.NET MVC3 快速入门--第二节 添加一个控制器

    MVC的全称为model-view-controller(模型-视图-控制器).MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护.使用MVC开发出来的应用程序一般包括 ...

  9. ASP.NET MVC 4 (十三) 基于表单的身份验证

    在前面的章节中我们知道可以在MVC应用程序中使用[Authorize]特性来限制用户对某些网址(控制器/控制器方法)的访问,但这都是在对用户认证之后,而用户的认证则依然是使用ASP.NET平台的认证机 ...

最新文章

  1. Apache Tiles 学习(四)、Tiles实战
  2. LeetCode Weekly Contest 27
  3. Spring Boot2.x-13前后端分离的跨域问题解决方法之Nginx
  4. 系统网卡性能,丢包率与下载上传,ulimit设置
  5. nginx加密,访问接口认证
  6. Linux网络模拟,模拟网络访问解析
  7. pm2集群模式mysql配置_配置 PM2 一键部署
  8. java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库
  9. 日志管理(一):slf4j原理简单介绍
  10. linux 高可用----keepalived+lvs
  11. netcore权限控制_netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源...
  12. Scrapy读取设置文件(settings.py)
  13. Funcode游戏设计C语言小飞虫
  14. 《通信原理》复习笔记10----第十章模拟信号的数字传输及相关例题(重点及难点)
  15. 某知名网络安全公司的渗透测试工程师面试题实战汇总
  16. 晶体二极管的分类大全
  17. 计算机画图简笔画竹子,竹子简笔画图片教程
  18. switch语句(C++)
  19. ipv4地址怎么设置 手机_怎么修改手机ip地址?手机ip地址更改方法介绍
  20. 什么是主从复制?mysql主从复制?redis主从复制?

热门文章

  1. 在delphi中嵌入腳本語言--(譯)RemObjects Pascal Script使用說明(1)(譯)
  2. 关于blog [转贴]来自网络
  3. FPGA水滴穿石(目录篇)
  4. java按字节截取字符串牛客网_字符串计数
  5. 3.FreeRTOS学习笔记-任务
  6. STM32 RTC 使用
  7. 5002.boost库之thread
  8. js设置html不可复制,用JS实现用户禁止WEB复制
  9. 计算机网络(九)——简述Socket
  10. c语言编程 排序,C语言编程-9_3 排序