【问题标题】:MVC Identity 2 - Account Confirmation emailMVC 身份 2 - 帐户确认电子邮件
【发布时间】:2014-10-20 05:24:21
【问题描述】:

我在新的 MVC 解决方案中使用身份 2 进行注册和登录,我已经对注册进行了编码,以便在有人注册时发送确认电子邮件,但是我仍然能够在不验证的情况下登录(单击电子邮件中的验证链接)。

我使用了通过 Nuget 安装 Indentity 2 时提供的标准代码。 我也使用了这个例子http://www.typecastexception.com/post/2014/04/20/ASPNET-Identity-20-Setting-Up-Account-Validation-and-Two-Factor-Authorization.aspx#Account-Validation:-How-it-works,我得到了同样的结果。

我是不是误会了?我认为在按照其他所有站点进行验证之前,我将无法登录。

【问题讨论】:

    标签: asp.net-mvc asp.net-identity


    【解决方案1】:

    登录过程本身并没有强制确认电子邮件。示例项目似乎不关心登录目的,但它们在允许密码重置之前会进行检查。因此,您可以根据需要调整代码以添加到您的登录操作中。本质上,您只需执行以下操作:

    if (!(await UserManager.IsEmailConfirmedAsync(user.Id)))
    {
        ModelState.AddModelError("", "E-mail address has not been confirmed");
    }
    
    if (ModelState.IsValid)
    {
        ...
    

    【讨论】:

    • 谢谢克里斯,这正是我所需要的。我确实在上面添加了这一行: var user = await UserManager.FindByNameAsync(model.Email);因为我现在只有电子邮件。我已编辑您的帖子以添加此行以帮助其他人。谢谢
    猜你喜欢
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 2023-03-29
    • 1970-01-01
    • 2013-08-23
    • 2013-10-19
    • 2013-10-18
    相关资源
    最近更新 更多