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
{
}
你知道你正在使你過去的CustomAuthorize屬性? – 2017-06-01 14:28:46
@AndrewHunter我現在注意到了。我希望我現在可以嘗試一下。但在家裏我沒有訪問我的TFS。明天將通過刪除CustomAuthorize進行嘗試。你認爲這可能是原因? –
@AlishaChaitali可能是,是的。沒有看起來立即錯誤。如果可以,請確保「CustomAuthorize」按預期工作。如果它的行爲有趣,請給[此認證過濾器文章](http://www.dotnetcurry.com/aspnet-mvc/957/aspnet-mvc-authentication-filters)一看。我假設它是一個授權過濾器,如果它設置爲一個正常的ActionFilter,我認爲你會看到一些問題,由於過濾器執行順序。 – JosephRT