根据UserAgent筛选操作

时间:2011-12-29 21:56:11

标签: asp.net-mvc

是否有一种简单的方法可以针对特定类型的UserAgent对ASP.NET MVC3中的操作方法应用过滤器?我有一个黑客网络以不同的方式咀嚼我们。我可以在网络/防火墙级别使用IP,子网等玩猫捉老鼠,但是希望为Squid等等提供应用程序级保证,因为它们似乎有某些模式出现。不确定这会如何影响性能但是想知道是否有人采用了这种方法。

提前谢谢。 道格

1 个答案:

答案 0 :(得分:3)

您必须创建自定义操作过滤器。以下是如果请求用户代理是基于Mozilla的浏览器,则返回http 403禁止的示例:

public class UserAgentActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.UserAgent.ToLowerInvariant().Contains("mozilla"))
        {
            filterContext.Result = new HttpStatusCodeResult(403);
        }

        base.OnActionExecuting(filterContext);
    }
}

请记住,如果用户代理意识到他们被阻止的方式,他们就可以伪造。