我已将双因素身份验证添加到我的移动ASP.Net Web App中。当用户成功输入其用户名和密码后,将通过电子邮件将PIN码通过电子邮件发送到存储在数据库中的电子邮件地址。我遇到的问题是,在通知用户他们没有定义电子邮件然后重新加载登录页面但我的代码没有通知用户而是重新加载Login.aspx页面之后:
Private Sub GeneratePin()
Dim r As New Random(System.DateTime.Now.Millisecond)
_Pin = CStr(r.Next(1000, 99999))
_email = CIAppGlobals.CurrentUser.UsrContactEmail
With lblPin
.Text = "PIN has been emailed to the you please check your email now."
End With
If Not String.IsNullOrEmpty(_email) Then
Dim Message As String = " Your Mobile PIN number is " & _Pin & vbNewLine & "From IP Address: " & CIAppGlobals.AppSettings.ClientIP
Tools.SendEmail(CIAppGlobals.CurrentUser.UsrContactEmail, "Mobile App - Two Factor Authentication", Message)
Else
Dim sText As String = "Please contact the Administrator You do not have an email address defined within Application."
'DirectCast(HttpContext.Current.Handler, System.Web.UI.Page).ClientScript.RegisterStartupScript(Me.[GetType](), "test", "alert('" & sText & "')", True)
Response.Write("<script>alert('" & sText & "');</script>")
Thread.Sleep(5000)
'Session.Abandon()
'FormsAuthentication.SignOut()
Response.Redirect(ParentFolder & "/Login.aspx")
End If
End Sub
答案 0 :(得分:2)
您对Response.Redirect()
的来电导致您输出的任何内容都无法显示。你需要删除它,然后输出一个链接或一些javascript进入登录页面。
另外:您需要移除对Thread.Sleep()
的通话。这导致了不必要的延迟并且让asp.net线程忙于无所事事。它不是你认为的那样......