实现思路
1.标识控制器有拦截特性;
2.控制器拦截处理;
代码实现
1.标识控制器有拦截特性,代码:
1
2
3
4
5
|
[MyFilter]
public
string
PostFindUser([FromBody]Userinfo user)
{
return
string
.Format(
"{0}是好人~"
, user.Name);
}
|
2.控制器拦截处理,代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
MyFilter : ActionFilterAttribute
{
public
override
void
OnActionExecuting(HttpActionContext actionContext)
{
base
.OnActionExecuting(actionContext);
//获取请求参数
WebApiTest.Controllers.Userinfo user = (WebApiTest.Controllers.Userinfo)actionContext.ActionArguments[
"user"
];
//TODO:业务判断
if
(user.Name ==
"小明"
)
//请求终止,进行调整或者内容输出
{
//HttpContext.Current.Response.Redirect("~/home/index");
HttpContext.Current.Response.Write(
"{\"id\":1,\"name\":\"小明\"}"
);
//创建响应对象,初始化为成功,没有指定的话本次请求将不会被拦截
actionContext.Response =
new
HttpResponseMessage(System.Net.HttpStatusCode.OK);
}
}
}
|
本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/p/5827029.html,如需转载请自行联系原作者