asp.net - 如何检查 ASP.NET 中是否是同一用户?

标签 asp.net authentication web-applications registration

这个问题与 ASP.NET 无关,而是与一般的 Web 应用程序相关。

我正在构建一个网络应用程序,其中我正在注册用户。截至目前,我正在获取用户的非常基本的凭据,例如名字、姓氏等。在这个网站中,我为所有刚刚注册的用户免费提供一些信息,以便用户发现我的网站是真实的,而不是假网站。之后,为了获得更多信息,用户必须付费。

我的网站提供的信息将在一段时间后过时。因此,当新用户注册时,他/她将获得更新的新信息;但老用户必须付费才能获得相同的新信息。

我的问题是,一旦信息过时,同一个人可以使用一组不同的凭据重新注册并获取新信息。我想避免这种情况发生。

所以我的问题是:我应该向用户请求或提取哪些信息,以检查同一用户是否没有重新注册?或任何其他方式使这成为可能。

我正在考虑获取该人注册的机器的 IP 地址并用它来检查。但用户可以使用不同的机器重新注册。

我完全迷失在这里,没有得到解决方案。我什至上网查了一下,但找不到答案。

如果您需要我提供更多信息,请告诉我。

最佳答案

无法找到阻止用户多次注册的技术方法。他们可以简单地使用另一个设备、IP、另一个电子邮件帐户和不同的凭据。

您可以要求他们向您发送难以伪造的“离线”信息,例如信用卡号码或身份证照片。有些用户可能仍然可以通过这种方式多次注册,但可能不会无限期地注册。然而,您会通过这种方式失去许多可能的客户,他们不愿意为测试帐户提供此类信息,因此这可能不是您想要的解决方案。

我的建议是以下两个之一:

  • 限制您向免费用户提供的信息/服务,这样即使他们再次注册,他们在付费时也会有所收获。
  • 尝试将他们与自己的帐户绑定(bind)在一起,这样他们一旦扔掉就会失去一些东西。例如,这可以为用户的事件(真实的或虚拟的)提供奖励,或者根据他们的历史记录增加他们的体验。以SO为例:如果您再次注册,您将失去所有声誉。用户会三思而行是否值得新内容。

关于asp.net - 如何检查 ASP.NET 中是否是同一用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16441852/

相关文章:

c# - 选择通过与其分组的另一个属性值找到的 XML 属性值。

android - 如何在整个android原生应用程序中维护服务器登录?

java - 使用 SpringBoot 配置文件模拟 REST API 调用

c# - iTemplate 它是什么以及我可以在 C# 中获得好的例子的地方

asp.net - 使用 MasterPage 属性作为属性来扩展 ASP.NET Page

events - 使用Spring Security Core插件和Grails 2.0.0注册事件监听器时出错

javascript - 一种使用 Javascript 和 Jquery 创建点击并拖动 "canvas"用户区域的方法?

html - web-app 上下文和 FORM ACTION 属性?

c# - 基于输入的动态返回类型 - asp.net

erlang - webmachine 和重定向未经身份验证的用户