首页 > 解决方案 > 以前曾经访问过 ASP.NET 页面吗?

问题描述

ASP.NET 中是否有一种机制来检测页面是否曾被访问过?(不存储到数据库或应用程序对象)我在 IIS 上运行该站点。

localhost/page?a=1&b=2 - not visited
localhost/page?a=1&b=3 - not visited
localhost/page?a=1&b=2 - already visited!

PS如果有人访问过它,则应该进行检测。假设在查询字符串中生成了一些哈希:

localhost/page?a=83abd83de6514ba0a0e5ce620eb1d43e

我需要检查该哈希是否已被“使用”。

如何?对我来说,最简单的方法(不存储到数据库中)是找出带有这个查询字符串的页面是否曾经被打开过。

标签: asp.net.netiis

解决方案


有几种方法可以做到这一点:

  1. 如果您的 IIS 启用了访问日志,您可以分析它的访问日志
  2. 如果你在IIS之前有一个服务网关,你可以分析它的访问日志
  3. 如果你在IIS之前有一个nginx,你可以分析它的访问日志
  4. 如果你在 IIS 之前有 F5,你可以分析它的访问日志
  5. 如果你的应用在云端,你可以分析它的访问日志
  6. 如果这些日志没有足够的信息,你最好实现自己的日志类
  7. 你也可以尝试在redis中记录这些url(KV,或者hyper-log-log,或者bloom-filter,取决于你想要做什么)

推荐阅读