2017-06-01 6 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属性を過ぎてそれを作っている知っていますか? –

+0

@AndrewHunter私は今気付いた。私は今それを試すことができたらいいなあと思う。しかし、自宅では自分のTFSにアクセスできない。明日のCustomAuthorizeを削除して試してみましょう。それが原因だと思いますか? –

+1

@AlishaChaitaliは、そうかもしれない。すぐに間違って見えるものはありません。可能であれば、 'CustomAuthorize'が期待通りに動いていることを確認してください。それが面白いなら、[この認証フィルタ記事](http://www.dotnetcurry.com/aspnet-mvc/957/aspnet-mvc-authentication-filters)を見てください。私はそれが認可フィルタであると仮定しています。もしそれが通常のActionFilterとして設定されていれば、フィルタの実行順序に起因するいくつかの問題があると思います。 – JosephRT

答えて

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

オンActionExecutingは、パラメータHttpActionContext

関連する問題