web api添加攔截器


實現思路

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);
        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM