电子邮件令牌过期和“电子邮件已被占用”问题-Asp.net Identity 2.0 API

用户名

我在Asp.Net Identity API 2.0中面临一个奇怪的问题。

用户注册后,我会向用户发送确认电子邮件,如果用户在注册后3个小时内确认了他/她的帐户,则“ ConfirmEmailAsync”方法似乎可以正常工作。

但是3小时后,如果我尝试确认电子邮件地址,则会收到“无效令牌”错误。

然后,如果用户尝试再次注册,则会收到“电子邮件/名称已被占用”的错误消息。

我该如何解决用户被“锁定”,他无法登录,也无法从头开始注册的情况。

有人可以帮忙吗?

拉维A.

您可以在许多地方执行此操作。例如,您正在执行以下操作来注册用户

var user = new ApplicationUser { UserName = model.RegisterEmail.ToLower(), Email = model.RegisterEmail.ToLower(), PhoneNumber = model.RegisterPhoneNumber, EmailConfirmed = true, PhoneNumberConfirmed = true };
var addUserResult = await UserManager.CreateAsync(user, model.RegisterPassword);


if (!addUserResult.Succeeded)
{
    ApplicationUser user = await UserManager.FindByEmailAsync(model.RegisterEmail.ToLower());
    if(!user.EmailConfirmed)
    {
       var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
       //Send the new link
       //return the error message accordingly.
    }       
}

您可以在登录期间执行相同的操作

ApplicationUser user = await UserManager.FindAsync(model.UserName.ToLower(), model.Password);   
if(user != null && !user.EmailConfirmed)
{
       var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
    //Send the new link
    //return the error message accordingly.
}

或者,如果您使用的是SigninManager(这是来自默认的MVC模板)

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
    case SignInStatus.Success:
        return RedirectToLocal(returnUrl);
    case SignInStatus.LockedOut:
        return View("Lockout");
    case SignInStatus.RequiresVerification:
        //redirecting to a different page
        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
    case SignInStatus.Failure:
    default:
        ModelState.AddModelError("", "Invalid login attempt.");
        return View(model);
}

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

来自分类Dev

电子邮件令牌在15分钟后过期-Asp Identity 2.0 API

来自分类Dev

使ASP.NET Identity 2.0电子邮件确认令牌可用于WCF和MVC

来自分类Dev

如何更改ASP.NET Identity用户的电子邮件,而无需确认电子邮件?

来自分类Dev

如何在ASP.NET MVC5 Identity 2中添加HTML电子邮件模板以进行电子邮件确认?

来自分类Dev

ASP.NET Web API 2-用户注册电子邮件确认失败

来自分类Dev

ASP.NET Web API 2-用户注册电子邮件确认失败

来自分类Dev

如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

来自分类Dev

如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

来自分类Dev

在ASP.NET Identity中将电子邮件设置为用户名

来自分类Dev

在ASP.NET Identity中获取通过Microsoft帐户认证的用户的电子邮件

来自分类Dev

Asp.net Identity 2.0-唯一电子邮件

来自分类Dev

Asp.Net Identity中带有破折号的身份电子邮件

来自分类Dev

Asp.Net Identity无需电子邮件即可保存用户

来自分类Dev

在Asp.net Identity核心中确认一封以上电子邮件

来自分类Dev

在ASP.NET Identity中将电子邮件设置为用户名

来自分类Dev

使用Identity 2在Web API 2中确认电子邮件的最佳方法是什么?

来自分类Dev

使用Identity 2在Web API 2中确认电子邮件的最佳方法是什么?

来自分类Dev

使用ASP.NET Identity和ASP.NET Web API 2的基于跨域令牌的身份验证

来自分类Dev

为什么在ASP.NET Identity中我会收到零星的无效令牌来进行电子邮件验证?

来自分类Dev

如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

来自分类Dev

需要为ASP.Net Core Identity服务器在IIS上配置SMTP设置以进行电子邮件验证

来自分类Dev

如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

来自分类Dev

通过Asp.Net Web Api发送电子邮件

来自分类Dev

我如何通过带有asp.net Web Api参数的+传递电子邮件

来自分类Dev

发送到多个电子邮件地址时,ASP.NET C#电子邮件附件最终变为0字节

来自分类Dev

防止没有确认电子邮件的用户使用身份2登录ASP.Net MVC

来自分类Dev

在ASP.Net#2中发送电子邮件

来自分类常见问题

Asp.NET Identity 2提供“无效令牌”错误

Related 相关文章

  1. 1

    ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

  2. 2

    电子邮件令牌在15分钟后过期-Asp Identity 2.0 API

  3. 3

    使ASP.NET Identity 2.0电子邮件确认令牌可用于WCF和MVC

  4. 4

    如何更改ASP.NET Identity用户的电子邮件,而无需确认电子邮件?

  5. 5

    如何在ASP.NET MVC5 Identity 2中添加HTML电子邮件模板以进行电子邮件确认?

  6. 6

    ASP.NET Web API 2-用户注册电子邮件确认失败

  7. 7

    ASP.NET Web API 2-用户注册电子邮件确认失败

  8. 8

    如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

  9. 9

    如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

  10. 10

    在ASP.NET Identity中将电子邮件设置为用户名

  11. 11

    在ASP.NET Identity中获取通过Microsoft帐户认证的用户的电子邮件

  12. 12

    Asp.net Identity 2.0-唯一电子邮件

  13. 13

    Asp.Net Identity中带有破折号的身份电子邮件

  14. 14

    Asp.Net Identity无需电子邮件即可保存用户

  15. 15

    在Asp.net Identity核心中确认一封以上电子邮件

  16. 16

    在ASP.NET Identity中将电子邮件设置为用户名

  17. 17

    使用Identity 2在Web API 2中确认电子邮件的最佳方法是什么?

  18. 18

    使用Identity 2在Web API 2中确认电子邮件的最佳方法是什么?

  19. 19

    使用ASP.NET Identity和ASP.NET Web API 2的基于跨域令牌的身份验证

  20. 20

    为什么在ASP.NET Identity中我会收到零星的无效令牌来进行电子邮件验证?

  21. 21

    如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

  22. 22

    需要为ASP.Net Core Identity服务器在IIS上配置SMTP设置以进行电子邮件验证

  23. 23

    如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

  24. 24

    通过Asp.Net Web Api发送电子邮件

  25. 25

    我如何通过带有asp.net Web Api参数的+传递电子邮件

  26. 26

    发送到多个电子邮件地址时,ASP.NET C#电子邮件附件最终变为0字节

  27. 27

    防止没有确认电子邮件的用户使用身份2登录ASP.Net MVC

  28. 28

    在ASP.Net#2中发送电子邮件

  29. 29

    Asp.NET Identity 2提供“无效令牌”错误

热门标签

归档