Как я могу требовать, чтобы пользователь проверял свой адрес электронной почты в приложении шаблонов веб-форм asp.net/vb.net в VS 2017? - PullRequest
0 голосов
/ 21 июня 2019

Я использую шаблон веб-форм 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

При входе в систему я хотел бы, чтобы пользователь был немедленно выведен из системы и перенаправлен на страницу, которая сообщает ему, что ему необходимо подтвердить свой адрес электронной почты, если он не был подтвержден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...