控制ASP.NET Web API 调用频率
2015-06-17 10:35
603 查看
很多的api,例如GitHub’sAPI都有流量控制的做法。使用速率限制,以防止在很短的时间量客户端向你的api发出太多的请求.例如,我们可以限制匿名API客户端每小时最多60个请求,而我们可以让更多的经过认证的客户端发出更多的请求。那么asp.netwebapi如何实现这样的功能呢?在项目WebApiContrib上面已经有了一个实现:https://github.com/WebApiContrib/WebAPIContrib/blob/master/src/WebApiContrib/MessageHandlers/ThrottlingHandler.cs,具有良好的可扩展性。
最简单的方法是使用ThrottlingHandler注册使用简单的参数,例如控制每个用户每小时60个请求:
最简单的方法是使用ThrottlingHandler注册使用简单的参数,例如控制每个用户每小时60个请求:
config.MessageHandlers.Add(newThrottlingHandler( newInMemoryThrottleStore(), id=>60, TimeSpan.FromHours(1)));
IThrottleStore接口使用ID+当前的请求数量。InMemoryThrottleStore只有一个内存中存储,但你可以轻松地扩展实现为分布式缓存或数据库。还可以轻松地自定义ThrottlingHandler的行为,例如我们针对一个ip地址可以更好的进行控制。
ThrottlingASP.NETWebAPIcalls IntroducingASP.NETWebAPIThrottlinghandler ThrottlingSuiteforWebAPI
相关文章推荐
- [置顶] ASP.NET大型企业OA平台+所有文档说明
- [转载] ASP.NET MVC (一)——深入理解ASP.NET MVC
- ASP.NET中的三种Timer(计时器)的区别和用法
- [walkthrough] 在Asp.net MVC6 RC里使用NLog,并且把配置集成到config.json
- ASP.NET中使用Application对象实现简单在线人数统计功能
- ASP.NET中gridview获取当前行的索引值
- KindEditor编辑器在ASP.NET中的使用
- ASP.NET中使用Application对象实现简单在线人数统计功能
- 深入理解ASP.NET MVC Day1
- ASP.NET中绑定数据控件OnClientClick事件Eval函数解析错误的处理
- AspNetPager的使用
- ASP.NET MVC Web API 学习笔记---第一个Web API程序---近来很多大型的平台都公开了Web API
- ASP.NET中Web DataGrid的使用指南(转自前沿设计网-找到这个真不容易啊!)
- 未能加载文件或程序集“EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个
- 实例快速上手 -ASP.NET 4.5新特性WebAPI从入门到精通
- Asp.net 文本框全选的实现
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
- NPOI与Aspose的导入导出保存
- asp.net mvc如何实现文件下载
- ASP.NET MVC学习笔记