在asp.net中生成带有随机数的身份验证代码

在asp.net中生成带有随机数的身份验证代码,asp.net,authentication,Asp.net,Authentication,我在项目中工作,我必须验证用户电子邮件。为此,我生成了一个随机数,并将其发送到用户的电子邮件地址(就像facebook身份验证一样),然后将其存储在会话中。5分钟后,此代码将过期。这是一种良好的做法还是使用随机数生成身份验证码?如果不是,那么在asp.net中生成身份验证代码的最佳实践是什么 这是一种良好的做法还是随机生成认证码 数字 如果您使用一些强算法来生成随机数,这应该是很好的。我建议使用RNGCryptoServiceProvider生成随机数 更多详情 使用会话存储生成的号码不是一个好

我在项目中工作,我必须验证用户电子邮件。为此,我生成了一个随机数,并将其发送到用户的电子邮件地址(就像facebook身份验证一样),然后将其存储在会话中。5分钟后,此代码将过期。这是一种良好的做法还是使用随机数生成身份验证码?如果不是,那么在asp.net中生成身份验证代码的最佳实践是什么

这是一种良好的做法还是随机生成认证码 数字

如果您使用一些强算法来生成随机数,这应该是很好的。我建议使用RNGCryptoServiceProvider生成随机数

更多详情

使用会话存储生成的号码不是一个好主意,您可能会遇到以下问题

  • 如果您的应用程序是负载平衡的/web场环境(当您使用inProc会话状态时),则可能会产生问题

  • 假设如果您的应用程序有可能崩溃/重新启动,您的 会话数据将丢失

  • 用户必须从同一会话进行验证,但不能从 不同的浏览器/系统
尝试通过实现一些强散列算法将数字存储在数据库中