我有一个功能,我希望尽早在每个页面视图上被调用。该代码获取用户 IP 地址,并将数据库中的计数器加 1。
此代码是基本的洪水限制器。如果在时间间隔内发出超过x
请求,i
则它会暂时禁止该 IP 地址。这就是为什么需要尽可能早地在每一页上进行检查的原因。
调用 MasterPages Page_Init
这似乎工作正常,但有时计数器的增量超过 1(我假设是否有 URL 重写或重定向)。
在 Session_Start 上调用 Global.asax
它似乎添加~30
到每个页面视图的计数器。
尽早捕获页面视图的最佳方法是什么,最好不需要更改站点上的每个页面?