我有一点代码:
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'的定义,并且没有扩展方法'Request'接受类型'System.Web.HttpContextBase'的第一个参数'(你是否缺少using指令或汇编参考?)
根据我的理解,Request对象实际上属于控制器,但是如果我无法访问该对象,我不太确定如何创建此动作过滤器。
非常感谢任何指导!
答案 0 :(得分:1)
答案 1 :(得分:0)
这似乎与项目有点古怪。我按照尼克里格斯的建议,尝试了一个测试解决方案,它工作正常。所以我从当前的解决方案中删除了该项目并创建了一个新项目,并将文件复制到其中。这让它发挥作用。