AccountController.SendCode和VerifyCode的作用是什么?

时间:2015-08-11 09:10:33

标签: asp.net-mvc visual-studio-2015 asp.net-mvc-5.2

此问题与您在Visual Studio Community 2015 RC中打开ASP.NET MVC应用程序时获得的Visual Studio生成的代码有关。

在此生成的代码中,SendCode上的操作VerifyCodeAccountController的目的是什么?

我已经阅读了他们的代码,但需要花费时间来阅读这些代码,并从MSDN中查找这些代码中调用的函数的含义 - 我已经完成了所有这些 - 然后打开他们的视图看看是什么他们这样做,然后寻找他们所谓的地方的参考 - 对于利益而言太过分了。微软在其他地方生成的代码中留下了很多评论。他们本可以留下一些评论来解释这些行为的工作流程,并告诉我们他们应该从哪里(当前)被调用。

混淆的一个重要原因是:这些行为不会被调用或重定向到其他任何地方。

无论如何,我的理解是,他们在那里要求刚刚在网站上注册了他的电子邮件地址的访问者,通过请求向他发送代码来验证他的电子邮件地址。

但是在SendCode动作的源代码中,代码中的这个下拉列表在View中获得了注册的双因素身份验证提供程序(我只是通过阅读代码看到了它。我无法运行此操作,因为它没有从任何地方调用,我不知道如何使用正确的参数获取它。)

这让我怀疑这与通过电子邮件和/或电话进行双因素身份验证有关。

但是,ManageController.AddPhone操作和ManagerController.EnableTwoFactorAuthentication已涵盖电话双因素身份验证,对吗?

似乎需要一位老牧师和一位年轻牧师来了解生成代码中的内容。

有人可以告诉我这两个动作是针对什么的,以及它们(应该是)从哪里调出来的?这两个行动的整个工作流程是什么?

2 个答案:

答案 0 :(得分:2)

如果您希望实现注册验证逻辑,我相信这些方法已经到位。例如,用户注册到您的网站,您需要他们在批准他们的注册之前验证他们的信息(通常是电子邮件地址)。

所以流程将是:

  1. 用户注册
  2. 系统创建用户但尚未激活帐户
  3. 系统向用户电子邮件发送电子邮件,其中包含验证链接(AccountController.SendCode())
  4. 用户打开电子邮件
  5. 用户点击导航到您网站上的验证页面的验证链接
  6. Page验证用户信息(AccountController.CheckCode())
  7. 如果验证成功,则帐户已激活
  8. 如果验证失败,则会显示错误消息
  9. 我不确定您是否已经看过this post,但它概述了如何使用SendGrid作为您的电子邮件提供商实现类似的功能。

答案 1 :(得分:2)

sendcode和verifycode的目的是为了防止你想利用MFA(多因素身份验证)。因此,在登录后,您将被重定向以发送代码,您决定是通过移动还是电子邮件发送代码,一旦代码发送,您将验证代码以输入您请求完成该过程的代码。