Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问请求对象时获取ActionFilter内部的编译异常_C#_Asp.net Mvc 2 - Fatal编程技术网

C# 访问请求对象时获取ActionFilter内部的编译异常

C# 访问请求对象时获取ActionFilter内部的编译异常,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,我有一点代码: using System; using System.Web.Mvc; public class SecureFilter : RequireHttpsAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { if (null == filterContext) { throw new Arg

我有一点代码:

using System;
using System.Web.Mvc;

public class SecureFilter : RequireHttpsAttribute
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        if (null == filterContext)
        {
            throw new ArgumentNullException("filterContext");
        }

        if (null != filterContext.HttpContext && filterContext.HttpContext.Request.IsLocal)
        {
            return;
        }

        base.OnAuthorization(filterContext);
    }
}
我试图确定请求是否是本地的,这就是我得到编译时异常的地方。它给了我这个错误:

“System.Web.HttpContextBase”不包含“Request”的定义,并且找不到接受“System.Web.HttpContextBase”类型的第一个参数的扩展方法“Request”(是否缺少using指令或程序集引用?)

据我所知,请求对象实际上属于控制器,但如果我无法访问该对象,我不太确定应该如何创建此操作过滤器


如蒙指导,不胜感激

这个项目似乎有些古怪。我听从了尼克·里格斯的建议,尝试了一个测试方案,效果很好。因此,我从当前解决方案中删除了该项目,创建了一个新的项目,并将文件复制到其中。这使它工作起来。

这似乎是这个项目的一个古怪之处。我听从了尼克·里格斯的建议,尝试了一个测试方案,效果很好。因此,我从当前解决方案中删除了该项目,创建了一个新的项目,并将文件复制到其中。这使它工作起来。

@Josh,我想说的是,这只是因为System.Web.Abstracts汇编引用。可能是您无意中删除了引用。

@Josh,我想说这只是因为System.Web.Abstracts程序集引用。可能是您无意中删除了引用。

Josh,这一定是配置问题-您的代码片段对我来说工作正常。如果你开始一个全新的MVC项目,你会遇到同样的问题吗?@Nick Riggs,好吧,很奇怪。将操作筛选器添加到主项目中会起作用。创建了一个新的mvc解决方案,并将过滤器添加到另一个项目中,效果也很好。所以我的项目有点不对劲,但我不知道是什么。只是一个想法,可能是某个扩展方法需要一个using语句,你可能已经删除了?Josh,这一定是配置问题-你的代码片段对我来说很好。如果你开始一个全新的MVC项目,你会遇到同样的问题吗?@Nick Riggs,好吧,很奇怪。将操作筛选器添加到主项目中会起作用。创建了一个新的mvc解决方案,并将过滤器添加到另一个项目中,效果也很好。所以我的项目有点不对劲,但我不知道是什么。只是一个想法,可能是某种扩展方法需要一个using语句,你可能已经删除了?