Я использую шаблон веб-форм asp.net/vb.net с индивидуальными учетными записями пользователей в VS 2017. У меня настроена проверка электронной почты, и это работает нормально. Однако, несмотря на то, что пользователь получает подтверждающее электронное письмо после регистрации, ему все равно разрешается оставаться в системе, не щелкая ссылку в подтверждающем электронном письме. Единственное, что они не могут сделать, не подтвердив свою электронную почту, это получить письмо для восстановления пароля или изменить свой пароль. Я хотел бы иметь возможность заставить их проверить свою электронную почту, прежде чем оставаться на сайте.
Я попытался найти на сайте что-то, что требует проверки электронной почты для входа в систему, но я ничего не могу найти. Я предполагаю, что есть что-то действительно простое, что нужно сделать, но я упускаю это. Я думаю, что я сузил это к чему-то, что должно быть изменено в коде ниже.
Protected Sub LogIn(sender As Object, e As EventArgs)
If IsValid Then
' Validate the user password
Dim manager = Context.GetOwinContext().GetUserManager(Of ApplicationUserManager)()
Dim signinManager = Context.GetOwinContext().GetUserManager(Of ApplicationSignInManager)()
' This doesn't count login failures towards account lockout
' To enable password failures to trigger lockout, change to shouldLockout := True
Dim result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout := False)
Select Case result
Case SignInStatus.Success
IdentityHelper.RedirectToReturnUrl(Request.QueryString("ReturnUrl"), Response)
Exit Select
Case SignInStatus.LockedOut
Response.Redirect("/Account/Lockout")
Exit Select
Case SignInStatus.RequiresVerification
Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
Request.QueryString("ReturnUrl"),
RememberMe.Checked),
True)
Exit Select
Case Else
FailureText.Text = "Invalid login attempt"
ErrorMessage.Visible = True
Exit Select
End Select
End If
End Sub
При входе в систему я хотел бы, чтобы пользователь был немедленно выведен из системы и перенаправлен на страницу, которая сообщает ему, что ему необходимо подтвердить свой адрес электронной почты, если он не был подтвержден.