码迷,mamicode.com
首页 > Web开发 > 详细

010.MVC身份验证

时间:2017-01-20 22:18:56      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:表示   控制   授权   作用   执行   控制器   control   use   err   

一.身份验证

1.定义:
身份验证是从用户出获取表示凭据(如用户名和密码)并听过某些授权机构验证哪些凭据的过程.
配置节中存储了登录用户的信息,这种方式可以适用于小型的应用程序,实际项目中是将登录用户信息存储在关系型数据库中,例如SQL Server

2.身份验证思路:

a.用户模型,控制器登陆方法,登录视图
登陆成功,记录会话.然后用户访问其它的方法,每个方法执行前都应该判断会话
问题:太麻烦
b.Controller父类实现了IActionFilter方法:
在执行每个方法之前OnActionExecuting方法被调用
c.重写OnActionExecuting方法:

3.身份验证的做法:2种方法:
方法1:
登录成功,记录会话访问[其它任何方法]前都要判断会话
登录正确的做法(不这样做,缺陷:绕过登录的问题,登录根本起不到安全验证的作用!
在4个方法中不检查会话,其他方法(执行前)都要检查会话.缺点,太麻烦?

方法2:
登录成功,记录会话,仅在OnActionExecuting中判断会话即可
具体步骤细节如下
步骤1:
创建一个MyController控制器,继承Controller控制器
重写OnActionExecutin
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
object obj = Session["my"];
if (obj == null)
{
filterContext.Result=
Redirec("/Users/Login");
}
}

步骤2:
除去Users控制器(Login,register)不能继承MyController,
其他的控制器的基类都修改成MyController
过滤器:计算机领域比喻的叫法

作用:在执行其他方法之前首先要执行的
在执行其他任务之前首先要执行的

 

010.MVC身份验证

标签:表示   控制   授权   作用   执行   控制器   control   use   err   

原文地址:http://www.cnblogs.com/harveylv/p/6327431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!