使用无注解属性的过滤

mvc中使用过滤器常规的办法是使用注解属性。然而还有另外一种办法,Controller类也实现了IAuthorizationFilter、IActionFilter、IResultFilter和IExceptionFilter接口。所以可以在

Controller类中直接重写相应的方法就可以使该Controller下的所有Action就被应用于所重写的过滤。

public class HomeController : Controller
{
private Stopwatch timer;
[Authorize(Users = "admin")]
public string Index()
{
return "This is the Index action on the home controller";
}
[GoogleAuth]
[Authorize(Users ="[email protected]")]
public string List() {
return "this is the List action on the Home controller";
}
//[RangeException]
[HandleError(ExceptionType =typeof(ArgumentOutOfRangeException),View ="RangeError")]
public string RangeTest(int id) {
if (id > 100)
{
return String.Format("The id value is:{0}", id);
}
else {
throw new ArgumentOutOfRangeException("id",id,"");
}
}

public string FilterTest() {
return "this is the filterTest action";
}
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
timer = Stopwatch.StartNew();
}

protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
timer.Stop();
filterContext.HttpContext.Response.Write(string.Format("<div> Total elapsed time:{0}</div>",timer.Elapsed.TotalSeconds));
}
}

时间: 2024-11-05 12:30:52

使用无注解属性的过滤的相关文章

使用注解属性绑定

大家应该知道在Spring中有一个注解@Value,他可以帮助我们来讲Spring加载的配置文件(*.perperties)文件中的信息自动的注入到我们的非静态属性中的. 一般情况下我们会这样使用: 1. 首先在Spring的配置文件中加载属性文件: ? 1 <context:property-placeholder location="classpath:component.properties"  ignore-unresolvable="true"/&g

C#注解属性的感想一:

C#当中Attribute(中文注解属性)已经知道这个概念已经很久很久了,不过悲剧的是在实际项目当中重来没有用它来做过什么东西,以致对它的理解总是很浅薄,更谈不上如何在实际项目中运用它.最近在学习<MVC3框架设计>这本书中,看到Filter这一章,突然悟到点感受,先分享如下: 感想一:Attribute大部分用在框架设计与组件设计中 我们平时开发的大部分是三层架构的Web项目,开发人员面向的客户就是只有自己.而框架设计或组件设计中,系统的目标是开发人员,所以整个系统的设计一部分框架设计者实现

a标签无disabled属性

<a class="button">确认</a> 我们经常会用a标签来设置按钮样式,如果点击它跳转页面,那么没有任何问题. 如果绑定了ajax事件,即点击后进行ajax请求,然后做一些事情. 为防止连续点击,重复执行事件,我想到的是使用disabled禁用它,结果设置disabled属性后,仍然可以执行点击操作. 查看了w3schools,才明白原来a标签无diabled属性:http://www.w3schools.com/tags/tag_a.asp 解决方

spring HibernateDaoSupport 注解属性注入的方法

/*使用注解属性注入无法调用HibernateDaoSupport中的setSessionFactory方法,需要手动创建,并且setSessionFactory不能被重写 * 需要新建方法,在新方法中调用父类的setSessionFactory方法,显式的指向属性名称*/ @Resource(name="sessionFactory") private void setSF(SessionFactory sessionFactory) { setSessionFactory(sess

用jackson的@JsonProperty注解属性名,会多出一个字段

遇见了这个情况,我的字段定义是xVal,yVal,用的lombok的@Data注解.然后查询到了下面这偏文章,https://bbs.csdn.net/topics/392305619,里面的回答是图片,我只是翻译一下图片而已. 以下是引用的原文:jackson2对pojo类型序列化的处理. Jackson2在初始化序列器时,对pojo类型对象会收集其属性信息,属性包括成员变量及方法,然后属性名称和处理过后的方法名称做为key保存到一个LinkedHashMap中.收集过程中会调用com.fas

fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线识别

一.demo代码 @JSONField注解属性字段上与set.get方法上.使用@Data注解(lombok插件安装最下方),对属性“笔名”[pseudonym]手动重写setter/getter方法 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @Data

Delphi 绘图[2] 无Canvas属性,获取 Canvas 对象

Delphi 绘图[2]  无Canvas属性,获取 Canvas 对象 //例如 Panel1 无TCanvas 属性,获取TCanvas var Cvs: TCanvas; begin Cvs:= TCanvas.Create; Cvs.Handle := GetDC(Panel1.Handle); Cvs.Brush.Color := clBlue; Cvs.FillRect(Panel1.ClientRect); Cvs.Free; end; 创建时间:2020.02.01 更新时间:

Hibernate 一对一、一对多、多对多注解属性的总结

mappedBy: 所填内容必为本类在另一方的字段名. 表示:本类放弃控制关联关系,所有对关联关系的控制,如:建立.解除与另一方的关系,都由对方控制,本类不管.举个例子: Teacher和Student之间是多对多关联关系,在Student端的teachers字段的@ManyToMany注解里面,配置属性mappedBy = "students".表示:学生没有资格控制与老师的关联关系(如:建立关系.删除关系),只有老师才有资格控制关联关系.学生不能说:"我们两做朋友吧&qu

hibernate的注解属性mappedBy详解

mappedBy: 1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性: 2>mappedBy标签一定是定义在被拥有方的,他指向拥有方: 3>mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的: 4>mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存