我已经写了一个留言板作为我的第一个ASP.NET项目。到目前为止它似乎运作良好。但是,我的一个功能是每封邮件都有垃圾邮件评级。它只是观看者将邮件标记为垃圾邮件的次数除以邮件被查看的总次数。我们的想法是允许用户忽略具有较高垃圾邮件评级的邮件,如果他们选择这样做的话。

然而,整个系统可能被垃圾邮件发送者挫败,只是查看他自己的消息并多次刷新它,这将增加消息被查看的次数。它也可能被连续多次将邮件标记为垃圾邮件的人挫败。我需要一种方法来确定特定访问者是否已查看过特定邮件,以及确定特定用户是否已将特定邮件标记为垃圾邮件的方法。

我不想要求注册 - 我希望任何人都能够查看或发布消息。我一直在考虑的两个想法是在访问者访问网站时设置cookie,以便我可以跟踪它们,或创建一个新的数据表,记录用户查看邮件时的IP地址或将其标记为垃圾邮件。谁能想到更好的方法吗? .NET是否有任何内置功能可以帮助我确定访问者是否第一次查看页面?

有帮助吗?

解决方案

最可靠的措施是IP地址过滤,因为垃圾邮件发送者可以通过编写自己的程序来请求页面来规避任何其他方法。它会影响NAT后面的客户端,但是出于垃圾邮件过滤的目的,它可以正常工作。

其他提示

ASP.Net具有一个名为 Personalization 的内置功能,可用于检测和记住匿名用户以及正常的“已注册”用户。用户。

对于匿名用户,请使用IP。这将给出误报,特别是对于一些互联网提供商而言,但对于您的场景来说,这似乎是一个不错的权衡。 我也会让用户很容易识别,开放ID是一种很好的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top