是否有一种简单的方法可以针对特定类型的UserAgent对ASP.NET MVC3中的操作方法应用过滤器?我有一个黑客网络以不同的方式咀嚼我们。我可以在网络/防火墙级别使用IP,子网等玩猫捉老鼠,但是希望为Squid等等提供应用程序级保证,因为它们似乎有某些模式出现。不确定这会如何影响性能但是想知道是否有人采用了这种方法。
提前谢谢。 道格答案 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);
}
}
请记住,如果用户代理意识到他们被阻止的方式,他们就可以伪造。