【问题标题】:Validate the Authenticity of a User For Site Subscriptions验证站点订阅用户的真实性
【发布时间】:2012-11-16 16:07:53
【问题描述】:

我有一个创建用户帐户的 Web 应用程序,但我还希望能够让用户在没有帐户的情况下注册订阅。他们所拥有的只是一个订阅页面,用于修改电子邮件设置并启用时事通讯订阅。

我的问题是如何在没有用户名/密码的情况下验证用户是他们所说的那个人,我的第二个问题是他们应该如何访问此页面。我不希望任何人输入带有电子邮件的 url 并访问该用户的订阅设置。

【问题讨论】:

  • 也许对于那些没有帐户的人,您可能想提供额外的字段,让他们说代码或密码,以便他们在订阅时输入,以便他们在想要检索设置时可以使用它

标签: asp.net security authentication authorization


【解决方案1】:

为每个用户条目创建一个唯一的访问代码,您在 url 中使用该代码以验证这是您想要的用户。 订阅表格将提供以下选项:

  • 填写您的电子邮件订阅
  • 请求更改您的设置,只需将您的电子邮件放到另一个字段中即可

这两个操作都会向您发送一封带有特殊 URL 的电子邮件

  • 第一个验证这是由您制作的,因此您将启用此用户及其电子邮件
  • 第二个向他发送另一个特殊 URL 以对他的设置进行任何更改,以防此用途在您的数据库中处于活动状态。

对于这个唯一的代码,您可以使用他的电子邮件的 md5 和他注册时的时间戳。

【讨论】:

  • 唯一的 URL 是否应该包含电子邮件的 base64 或其他内容?否则我将不得不对我的数据库中的每一行进行 MD5 散列以找到正确的散列。
  • 我用 base64 编码了一个包含电子邮件和时间戳的访问代码,并使用纯文本电子邮件进行查找。
  • 一个想法是使用电子邮件 + 时间戳与 md5 或其他哈希函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 2021-07-20
  • 2021-09-23
  • 1970-01-01
相关资源
最近更新 更多