我在一个新的MVC解决方案中使用身份2进行注册和登录,我已经对注册进行了编码,以便在有人注册时发送确认电子邮件,但我仍然可以在不进行验证的情况下登录(单击电子邮件中的验证链接)。
我使用了通过Nuget安装缩进2时提供的标准代码。我也用过这个例子http://www.typecastexception.com/post/2014/04/20/ASPNET-Identity-20-Setting-Up-Account-Validation-and-Two-Factor-Authorization.aspx#Account-验证:-它的工作原理和我一样。
我误解了吗?我以为我将无法登录,直到按照其他网站验证。
登录过程本身并没有强制要求确认电子邮件。示例项目似乎不关心登录目的,但它们在允许重置密码之前会进行检查。因此,如果您愿意,您可以根据需要调整代码以添加到您的登录操作中。本质上,你只需要做一些类似的事情:
if (!(await UserManager.IsEmailConfirmedAsync(user.Id)))
{
ModelState.AddModelError("", "E-mail address has not been confirmed");
}
if (ModelState.IsValid)
{
...