我想补充的,如果在下面的代码声明否认谁没有证实他们的电子邮件地址的用户 - 像这样的伪代码:ASP.NET防止登录的时候EmailConfirmed是假的使用VB.Net
if EmailConfirmed = false Then RedirectToURL and user = ""
在
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 doen'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:=True)
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
End Class
我已经看到了它在C#中做,但我无法复制或准确地转换。感谢您的任何帮助。
UPDATE
当我使用的代码有@HumbleBeginnings链接,并转换到VB我得到:
Dim user = Await.UserManager.FindByNameAsync(model.Email)
If user IsNot Nothing Then If Not
Await UserManager.IsEmailConfirmedAsync(user.Id) Then
ViewBag.errorMessage = "You must have a confirmed email to log on."
Return
View("Error")
End If
不过是说,等待着只能异步方法一起使用,可以考虑改变这个方法与异步改性剂和改变它的返回类型任务
能否请您发布的.aspx代码过于解决?什么控制用户必须检查/ teype确认电子邮件? –
谢谢Emmanuel N.不知道要发布哪个.aspx代码。我能够得到它的工作,以便asp发送一封电子邮件给用户的电子邮件。在电子邮件中是确认电子邮件的链接。当用户点击链接时,一个值返回到我的数据库以将confirEmail从False切换到True。现在我希望用户不能登录,如果confirmedEmail = false。 – user2796515