Action过滤器使用实例(一)
1.实例一
/// <summary>
/// 需要用户登陆的 action,执行提前验证
/// </summary>
public class LoginFilterAttribute : FilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
{
}
/// <summary>
/// 执行action 前验证 用户是否登陆,如果没有登陆返回字符串体质
/// </summary>
/// <param name="filterContext"></param>
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
// throw new NotImplementedException();
//1.判断
if (A_UserHelper.IsLogin() == false)
{
ContentResult result = new ContentResult();
result.Content = "亲,还没有登陆,请先登录";
filterContext.Result = result;
}
} }
2.实例二
public class LoginGoAttribute : FilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
{
//throw new NotImplementedException();
}
/// <summary>
/// 执行action 之前 验证用户是否登陆,如果没有登陆返回登陆页面
/// </summary>
/// <param name="filterContext"></param>
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
//throw new NotImplementedException();
if (A_UserHelper.IsLogin() == false)
{
//不跳转在当前地址返回登陆页------
//RouteData route = filterContext.RouteData;
//route.Values["controller"] = "user";
//route.Values["action"] = "login";
//IController IController = new UserController();
//HttpContextBase context = filterContext.HttpContext;
//IController.Execute(new RequestContext(context, route));
//filterContext.Result = new ContentResult(); //重定向到登陆页--------不推荐使用,因为当前action还是会执行
//HttpContextBase context = filterContext.HttpContext;
//context.Response.Redirect(SiteUrl.GetLogin(),true);
//context.Response.End();
//filterContext.ActionDescriptor = null; //临时重定向到登陆页
HttpRequestBase req = filterContext.HttpContext.Request;
string url = SiteUrl.GetLogin() + "?redirecturl=" + req.Url.AbsoluteUri;
RedirectResult result = new RedirectResult(url, false);
filterContext.Result = result; //此方法 失败
//HttpContextBase context = filterContext.HttpContext;
//UserController userC = new UserController();
//userC.ControllerContext = new ControllerContext();
//userC.ControllerContext.RouteData.DataTokens["controller"] = "user";
//userC.ControllerContext.RouteData.Values["area"] = "";
//ContentResult content = new ContentResult();
//content.Content = ViewHelper.RenderViewToString(userC, "login", null); ;
//filterContext.Result = content; }
}
}
更多:
MVC4过滤器:http://www.cnblogs.com/tianma3798/p/4666544.html
Action过滤器使用实例(一)的更多相关文章
- Asp.Net Mvc Action过滤器(二)
在Mvc中为Action添加过滤器,有两种方式, 一.使用ActionFilterAttribute,简单方式,同时支持Result的过滤处理, 1.可以为空,支持的重写:OnActionExecut ...
- asp.net MVC之Action过滤器浅析
在asp.net MVC中,Action过滤器是一大利器,它可以在以下两个步骤执行相关的代码: 1.执行Action方法之前:OnActionExecuting 2.Action方法执行完毕后:OnA ...
- 关于struts和Spring 结合到一起之后存在ACtion创建单实例还是多
struts 2的Action是多实例的并非单例,也就是每次请求产生一个Action的对象.原因是:struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面 ...
- ASP.NET MVC : Action过滤器(Filtering)
http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相 ...
- mvc 5 的过滤器和webapi 过滤器 对应实现的action过滤器区别
asp.net webapi Action过滤器实现这个: #region 程序集 System.Web.Http, Version=5.2.3.0, Culture=neutral, Publi ...
- MVC action过滤器验证登录
方法一 : 1.创建一个全局action过滤器 (在appstart 的filterconfig中注册 filters.Add(new LoginAttribute());) 2.不需要登 ...
- MVC中的Action过滤器
Action过滤器可以用在调用动作方法之前或之后,执行一些特殊的逻辑,比如用登录验证: Action过滤器实现IActionFilter接口,该接口有两个方法: public interface IA ...
- Django 过滤器 实例
实例1 safe让Html标签以及一些特殊符号(如<)生效,下面以例子说明: # value = '<b>CPT</b>' # 那么输出的时候,CPT就是加粗的,如果不加 ...
- 使用VS2012 开发SharePoint 2013 声明式的action(activity) 综合实例
本文讲述使用VS2012 开发SharePoint 2013 声明式的action 综合实例. 需求同: http://blog.csdn.net/abrahamcheng/article/detai ...
随机推荐
- Codeforces Round #248 (Div. 1) C - Tachibana Kanade's Tofu AC自动机
C - Tachibana Kanade's Tofu 思路:把 n 个串丢进AC自动机中,然后dp就好啦. 我的代码居然是在CF上跑最快的.. #include<bits/stdc++.h&g ...
- tomcat下程序包的安装与部署
还没亲自在服务器进行部署,但是参考了公司文档,等自己安装部署的时候,再将文档补充完整. 1.初始化数据库 2.修改war包的数据 主要包括的一些配置是数据库的连接配置. 3.将包发布 这个步骤下有几个 ...
- 使用IDEA运行Eclipse编辑jetty运行的J2EE项目的惨痛教训
公司的项目原本是使用Eclipse,使用自带的jetty运行, 用IDEA通过git clone后,使用Tomcat运行,可以运行,却无法访问页面,总是报错404 后来使用IDEA Jetty运行,经 ...
- web服务端安全之文件上传漏洞
一.文件上传漏洞的原理 由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取web应用的控制权限. 常见于上传功能,富文本编辑器. 二.文件上传漏洞的防御 ...
- 机器学习之路:python 特征降维 主成分分析 PCA
主成分分析: 降低特征维度的方法. 不会抛弃某一列特征, 而是利用线性代数的计算,将某一维度特征投影到其他维度上去, 尽量小的损失被投影的维度特征 api使用: estimator = PCA(n_c ...
- 利用python制作电子签名
有时候我们需要在文档里粘上电子签名,通常使用photoshop制作,但是通常photoshop软件还需要下载.安装,对于不经常使用的人来说,单独装这个软件没啥必要. 因此我们可以利用python对签名 ...
- 【WIN10】Toast 通知
DEMO下載:http://yunpan.cn/cFSLZQf5ePeTV 访问密码 1fce 1.顯示通知 使用xml確定通知內容. string xml = "<toast la ...
- LCT维护子树信息
有些题目,在要求支持link-cut之外,还会在线询问某个子树的信息.LCT可以通过维护虚边信息完成这个操作. 对于LCT上每个节点,维护两个两sz和si,后者维护该点所有虚儿子的信息,前者维护该点的 ...
- 【BZOJ-3110】K大数查询 整体二分 + 线段树
3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 6265 Solved: 2060[Submit][Sta ...
- WIKIOI 1026 逃跑的拉尔夫 深度优先搜索
/* 1026 逃跑的拉尔夫 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆 ...