记录用户状态与过滤方法(过滤器使用)
来源:互联网 发布:知易商标网 编辑:程序博客网 时间:2024/06/01 09:00
一:几个常用对象
1:使用静态键值对
一般在wcf接口中可以建立一个静态的键值对,用户登录后产生一个sessionid,把sessionid
和用户id存放在键值对里,sessionid返回给前台,以后可以使用sessionid作为访问的凭证.
静态键值对是所有用户共享一个类似application
2:使用cookie
cookie是存放在客服端,针对单个用户的,也就是每次获取到的就是当前访问的用户,与其他用户不相关,
可以存放一些不敏感的数据到cookie,记录用户的状态
3:使用session
与cookie相似,针对单个用户,但是保存在服务器端,数据更安全
二:方法
1:每个Controller都继承一个基类,每个请求都必须要请求基类的一个方法,就可以过滤掉一些不正常的请求
public class BaseController : Controller { protected override IActionInvoker CreateActionInvoker() { if (this.GetType().Name != "LoginController") { //验证登陆 } return base.CreateActionInvoker(); } }
2: 使用过滤器
public class IsLoginFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.RouteData.Values["controller"].ToString() != "Login") { //访问所有不是名称login的action都需要,验证登陆 var session = filterContext.HttpContext.Session["IsLogin"]; if (session == null) { filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { Controller = "Login", action = "Index" })); } } base.OnActionExecuting(filterContext); } public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); } }
配置全局过滤器
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new IsLoginFilter()); }注意可能会出现调用不明确,使用的是System.Web.Mvc里边的,不是System.Web
过滤器其他文章:
http://blog.csdn.net/u010096526/article/details/46700581
0 0
- 记录用户状态与过滤方法(过滤器使用)
- 使用过滤器过滤用户登陆代码
- ASP.NET MVC 使用Filter过滤器 验证用户登录状态
- 过滤器,过滤没登录的用户
- java web过滤器之用户登录过滤
- fliter过滤器过滤未登录用户
- AngularJS学习记录-过滤器(排序方式过滤)
- AngularJS学习记录-过滤器(匹配方式过滤)
- JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
- [转载]C#开发Winform记录用户登录状态的方法
- C#开发Winform记录用户登录状态的方法
- Mahout安装与第一次使用--用户协同过滤
- 关于编码过滤的问题,这里使用在web.xml中添加过滤器的方法!
- Servlet过滤器简介与字符串过滤
- 记录用户的登录状态
- 使用过滤器实现敏感词的过滤
- 使用filter过滤器实现权限过滤问题
- 使用过滤器实现敏感词的过滤
- 学习IOS开发的第10天
- 2014笔试题
- IO(下)
- 在CentOS VPS上通过SSH安装 Java-JDK,VPS 搭建网站之序列一
- VS2010生成解决方案出现错误:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 记录用户状态与过滤方法(过滤器使用)
- 【Android学习】Android数据的四种储存方式(3)--SQLite
- Lucene:基于Java的全文检索引擎简介
- 玩转开源系统总概述
- oracle
- mac笔记——from“http://macshuo.com/”
- 第四周 项目四 数组做数据成员
- IOS中的block和retain cycle (经典)
- 大臣的旅费 两遍dfs求树的直径