2012-01-11 4 views
0

モバイルASP.Net Web AppにTwo Factor Authenticationを追加しました。ユーザーがユーザー名とパスワードを正常に入力すると、データベースに格納されている電子メールアドレスにピン番号が電子メールで送信されます。私が抱えている問題は、電子メールが定義されていないことをユーザーに通知してからログインページをリロードした後に、コードがユーザーに通知するのではなく、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 

答えて

2

Response.Redirect()をご利用の場合は、出力されたものが表示されません。それを削除してから、リンクまたはJavaScriptを出力してログインページに移動する必要があります。

また、Thread.Sleep()への呼び出しを削除する必要があります。それは不必要な遅延を引き起こし、何もしないで忙しいasp.netスレッドを維持しています。それはあなたが思っていることをしていない...

+0

うーん、それは素晴らしいアイデアです、ありがとう! –

関連する問題