MVC 4 中的延迟电子邮件确认

Posted

技术标签:

【中文标题】MVC 4 中的延迟电子邮件确认【英文标题】:Delayed email confirmation in MVC 4 【发布时间】:2013-09-19 01:26:26 【问题描述】:

我正在使用内置的电子邮件确认机制:

WebSecurity.CreateUserAndAccount(username, password, requireConfirmationToken: true);  

登录时:

WebSecurity.Login(username, password);  

如果用户尚未确认他的电子邮件,该方法将失败。 我想更改此行为,以便 WebSecurity.Login() 将通过,并且我将控制登录过程何时失败(例如,大约 x 天)。

有没有办法加入这个过程? (如果我仍然可以使用 WebScurity 而不是恢复到较低级别的 API,那就太好了。

【问题讨论】:

【参考方案1】:

查看此http://www.asp.net/single-page-application/overview/templates/backbonejs-template,它具有您正在寻找的完整用户注册流程。

【讨论】:

【参考方案2】:

没有预定义的流程,您必须自己定义。 (WebSecurity 永远不会自己发送电子邮件。)

最简单的选项是像您的示例一样传递requireConfirmationToken: true 并存储返回的值(确认令牌)以供以后使用。当您认为合适时(在 x 天后或通过电子邮件链接或您想要的任何内容后)使用存储的令牌致电 WebSecurity.ConfirmAccount。从那时起,Login 将起作用。

【讨论】:

但问题是我希望 WebSecurity.Login() 通过,即使用户尚未确认他的电子邮件。 然后只需在创建帐户后立即传递requireConfirmationToken: false 或调用WebSecurity.ConfirmAccount

以上是关于MVC 4 中的延迟电子邮件确认的主要内容,如果未能解决你的问题,请参考以下文章

如果确认字段不为空,MVC 比较电子邮件

如何在 asp.net core mvc 中配置确认电子邮件令牌的生命周期

MVC 中的 ASP.NET Identity IUserEmailStore 错误

C# MVC 4 应用程序中的电子邮件地址验证:使用或不使用正则表达式 [重复]

MVC 5,无效的令牌

从 ASP.NET MVC 5 中的 Facebook v2.4 API 访问 OAuth ExternalLoginCallback 中的电子邮件地址 [重复]