實現思路
1.標識控制器有攔截特性;
2.控制器攔截處理;
代碼實現
1.標識控制器有攔截特性,代碼:
[MyFilter]
public string PostFindUser([FromBody]Userinfo user)
{
return string.Format("{0}是好人~", user.Name);
}
2.控制器攔截處理,代碼:
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);
}
}
}
