2017-06-01 88 views
0

有許多鏈接供我參考。但不幸的是,他們沒有爲我工作。所以我在這裏張貼。問題是我的控件沒有擊中「OnActionExecuting」。這是我第一次使用WebAPI,我想我在某處丟失了某些東西。請幫忙!!如何在Web API中實現自定義過濾器

我的API過濾器看起來是這樣的:

public class ValidateCustomAntiForgeryTokenAttribute : System.Web.Http.Filters.ActionFilterAttribute 
{   

    public new void OnActionExecuted(HttpActionExecutedContext filterContext) 
    {    
     //removed for Breviety 
    } 
    public void OnActionExecuting(HttpActionExecutedContext request) 
    { 
     //removed for Breviety 
    } 

} 

我註冊了我的Startup.cs過濾器:

public class StartUp : System.Web.HttpApplication 
{   
    public void Configuration(IAppBuilder app) 
    { 

     HttpConfiguration config = new HttpConfiguration(); 
     //removed for Breveity 
     config.Filters.Add(new ValidateCustomAntiForgeryTokenAttribute()); 
    } 
} 

,並用它在我的控制器的一個:

[CustomAuthorize] 
[ValidateCustomAntiForgeryToken] 
public class QuestionController : ApiController 
{ 
} 
+0

你知道你正在使你過去的CustomAuthorize屬性? – 2017-06-01 14:28:46

+0

@AndrewHunter我現在注意到了。我希望我現在可以嘗試一下。但在家裏我沒有訪問我的TFS。明天將通過刪除CustomAuthorize進行嘗試。你認爲這可能是原因? –

+1

@AlishaChaitali可能是,是的。沒有看起來立即錯誤。如果可以,請確保「Cu​​stomAuthorize」按預期工作。如果它的行爲有趣,請給[此認證過濾器文章](http://www.dotnetcurry.com/aspnet-mvc/957/aspnet-mvc-authentication-filters)一看。我假設它是一個授權過濾器,如果它設置爲一個正常的ActionFilter,我認爲你會看到一些問題,由於過濾器執行順序。 – JosephRT

回答

0
public void OnActionExecuting(HttpActionContext request) 
{ 
    //removed for Breviety 
} 

開ActionExecuting預計參數HttpActionContext

相關問題