我想知道爲什麼變量IgnoreRequest在我的web api 2.2中設置爲true後總是爲false。忽略Web Api過濾器中的變量
過濾器:
public class RestrictToCandidatePlus : ActionFilterAttribute
{
public virtual bool IgnoreRequest { get; set; }
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
bool validAccType = 2 == 1; //original code hidden
if (!IgnoreRequest && !validAccType)
{
HandleUnauthorizedRequest(actionContext);
return;
}
base.OnActionExecuting(actionContext);
}
private void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext)
{
actionContext.Response = actionContext.Request.CreateResponse<String>(HttpStatusCode.Unauthorized, "Invalid account type");
}
}
而且控制器:
[Filter1]
[Filter2]
[RestrictToCandidatePlus]
public class PlusCandidateController : ApiController
{
[RestrictToCandidatePlus(IgnoreRequest = true)]
[HttpPost]
public HttpResponseMessage SetInterest([FromBody] SetInterestModel model)
{
//some logic
return Request.CreateResponse(HttpStatusCode.OK);
}
}
我有我的MVC5應用正好與過濾器相同的邏輯和它的作品般的魅力。我知道MVC中的過濾器與Web Api中的過濾器不同,但我認爲我應該能夠將IgnoreRequest變量設置爲true。如你所見,我不能使用OverrideActionFiltersAttribute,否則會禁用Filter1和Filter2,這不是我想要的。
我只是想在我的控制器的一個你'RestrictToCandidatePlus'屬性,當我打了一個破發指向'if(!IgnoreRequest &&!validAccType)''IgnoreRequest'是真的。 – Padhraic
這是在WebApi 2.2上?我知道它適用於MVC ... – WPalombini