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过滤器使用实例(一)的更多相关文章

  1. Asp.Net Mvc Action过滤器(二)

    在Mvc中为Action添加过滤器,有两种方式, 一.使用ActionFilterAttribute,简单方式,同时支持Result的过滤处理, 1.可以为空,支持的重写:OnActionExecut ...

  2. asp.net MVC之Action过滤器浅析

    在asp.net MVC中,Action过滤器是一大利器,它可以在以下两个步骤执行相关的代码: 1.执行Action方法之前:OnActionExecuting 2.Action方法执行完毕后:OnA ...

  3. 关于struts和Spring 结合到一起之后存在ACtion创建单实例还是多

    struts 2的Action是多实例的并非单例,也就是每次请求产生一个Action的对象.原因是:struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面 ...

  4. ASP.NET MVC : Action过滤器(Filtering)

    http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相 ...

  5. mvc 5 的过滤器和webapi 过滤器 对应实现的action过滤器区别

     asp.net webapi  Action过滤器实现这个: #region 程序集 System.Web.Http, Version=5.2.3.0, Culture=neutral, Publi ...

  6. MVC action过滤器验证登录

    方法一 :  1.创建一个全局action过滤器  (在appstart  的filterconfig中注册   filters.Add(new LoginAttribute());)  2.不需要登 ...

  7. MVC中的Action过滤器

    Action过滤器可以用在调用动作方法之前或之后,执行一些特殊的逻辑,比如用登录验证: Action过滤器实现IActionFilter接口,该接口有两个方法: public interface IA ...

  8. Django 过滤器 实例

    实例1 safe让Html标签以及一些特殊符号(如<)生效,下面以例子说明: # value = '<b>CPT</b>' # 那么输出的时候,CPT就是加粗的,如果不加 ...

  9. 使用VS2012 开发SharePoint 2013 声明式的action(activity) 综合实例

    本文讲述使用VS2012 开发SharePoint 2013 声明式的action 综合实例. 需求同: http://blog.csdn.net/abrahamcheng/article/detai ...

随机推荐

  1. 【LOJ】#2038. 「SHOI2015」超能粒子炮・改

    题解 用lucas随便分析一波就出来了 \(\binom{n}{k} = \binom{n % p}{k % p}\binom{n / p}{k / p}\) 那么对于一个余数r,如果r <= ...

  2. 【51nod】1851 俄罗斯方块

    题解 最近一遇到神仙题一卡就好久--做点水题滋养一下自己吧= = 显然我们发现放一个方块的奇偶性不会改变,所以格子如果黑格子是奇数,那么就是No 我们发现每个2 × 3的方格里的2 × 1的黑格子都可 ...

  3. USACO 4.3 Street Race

    Street RaceIOI'95 Figure 1 gives an example of a course for a street race. You see some points, labe ...

  4. jenkins发布maven项目

    (1)环境介绍 (2)配置ssh配置:系统管理--->系统设置 做这样的配置是方便打包之后war包或jar包复制到/tomcat/update目录下 (3)安装git 1丶不要使用1.8版本以下 ...

  5. myql root用户远程访问

    虚拟机搭建的lnmp开发环境,mysql在虚拟机正常访问,想在物理机通过数据库管理工具Navicat远程登录,方便建表查询等操作.经网上一查,有答案了. [以下是转载]http://www.cnblo ...

  6. 黑马程序员_java基础笔记(06)...集合

    —————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— JavaApi(其实就是java给我们提供的已经定义好的对象.工具对象:集合框架) ...

  7. MOD 10,11算法(GB/T 17710-1999 数据处理 校验码系统 )的 Python实现

    以上是算法简要说明,以下代码为Python实现,不过注意代码中的N=15,不是16. # GB/T 17710 双模校验算法 # QQ 3257132998 def GB_Code(str): str ...

  8. Mac 上自带TFTP Server 软件的使用

    搬瓦工搭建SS教程 1.TFTP协议 简单文件传输协议Trivial File Transfer Protocol (TFTP)是一个基于UDP协议的简单的.低开销的文件传输协议,允许客户端get或者 ...

  9. leetcode 无重复字符的最长子串 python实现

    这道题需要借助哈希查找key的O(n) 时间复杂度, 否则就会超时 初始化一个 哈希表\字典  dic 头指针start 初始为0 当前指针 cur 初始为0 最大长度变量 l 初始为0 用cur变量 ...

  10. event使用说明和DHTML参数属性

    event 对象 代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态. DHTML元素属性列表 属性 描述 abstract 使用 event 对象获取高级流重定向器(ASX)文件中项目 ...