1.介绍
1)用MvcThrottle你能保护你的网站不受攻击、刷。
2)你可以限制与设置多个不同场景允许的IP,设置 每秒/分/天 允许访问IP。
3)你可以定义限制,来处理所有请求。或者某个Controller、方法的范围。
2.使用
1)首先,请到github上下载框架,里面包括demo。但是demo写得我看不到,读者如果看得懂,建议不用阅读本文。
https://github.com/stefanprodan/MvcThrottle
2)引入MvcThrottle项目、包
如下,我们新建的一个MVC项目WebApplicationIP
3)在FilterConfig类中添加配置
namespace WebApplicationIP
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
const int secondCount = ;
var throttleFilter = new ThrottlingFilter
{
//每秒钟最多请求secondCount次,每分钟最多请求secondCount*60次,依次类推 Policy = new ThrottlePolicy(
perSecond: secondCount,
perMinute: secondCount * ,
perHour: secondCount * * ,
perDay: secondCount * * * )
{
IpThrottling = true
},
Repository = new CacheRepository()
};
filters.Add(throttleFilter); filters.Add(new HandleErrorAttribute());
}
}
}
4)在controller的方法设置访问限制
下面是代表用全局的IP访问限制:
[EnableThrottling]
下面是代码这个方法,每秒最多访问5次,每分钟10次:
[EnableThrottling(PerSecond = 5, PerMinute = 10)]
可以关注本人的公众号,多年经验的原创文章共享给大家。