首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >覆盖ActionFilter属性在ASP.NET Web APi 2中不起作用

覆盖ActionFilter属性在ASP.NET Web APi 2中不起作用
EN

Stack Overflow用户
提问于 2013-12-30 19:35:33
回答 1查看 1.9K关注 0票数 2

我正在使用ASP.NET WEB API2迁移现有的web服务。

下面是我使用的一组过滤器

代码语言:javascript
复制
public class ValidateSession : ActionFilterAttribute
{

    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
    {
        //var requestMessage = actionContext.Request.Content.ToString();
        if (!actionContext.Request.Headers.Contains("source"))
        {
            actionContext.Request.Headers.Add("source", "1");
        }
        if (!actionContext.Request.Headers.Contains("appstore_session_id"))
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(System.Net.HttpStatusCode.BadRequest, "Session id is not included in the header");
        }
    }


}

下面是覆盖前面的ActionFilter属性的代码

代码语言:javascript
复制
public class OverrideSessionValidation : ActionFilterAttribute, IOverrideFilter
{
    public Type FiltersToOverride
    {
        get { return typeof(ValidateSession); }
    }

    public bool AllowMultiple
    {
        get { return true; }
    }


}

下面还给出了控制器代码

代码语言:javascript
复制
[ValidateSession]
public class SampleController : ApiController
{
    public string GetSessionValues()
    {
        return "from session vals";
    }
    [OverrideSessionValidation]
    public string GetDefaultVals()
    {
        return "from DefVals";
    }
}

可以看出,我已经将验证会话放在了类级别,并且对于一个方法,我希望覆盖相同的方法。因此,对于第二种方法,我使用了overrideSessionValidation。虽然

OverrideSessionValidation的FiltersToOverride被调用,我看到ValidateSession的onActionExcuting也被调用。我希望不会调用类筛选器onActionExecuting,因为我对此进行了覆盖。

请让我知道错误是什么,这样我才能解决这个问题

感谢并问候Venkatesh

EN

回答 1

Stack Overflow用户

发布于 2014-01-03 10:33:23

在大量研究和查看ASP.NET MVC的原生代码之后,我意识到我们不能覆盖单个操作属性。因此,我使用委托消息处理程序,如果需要操作属性,则在操作级别使用它们,而不是在类级别

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20838725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档