私はvb.netログインコントロールの操作に関しては初心者なので、ご容赦ください...
Tp start 私は ASP.net 4.0 と vb.net を使用しています。
わかりましたので、SQL データベースに対してユーザーを検証する単純なログイン コントロールがあります。(私は hostgator でホストしているので、通常の Windows 認証は使用できません)。今私が抱えている最大の問題は、セッションがタイムアウトしてログインページにリダイレクトされた場合、ログインフォームにユーザー名/パスワードを入力しても問題ないということです。ユーザー名とパスワードが間違っているか、ユーザーが存在しませんか?
ログイン コントロールが本当にユーザーを認証していることを確認するにはどうすればよいですか?
どんな助けでも大歓迎です。ありがとう!
Public strLoginErrorMsg As String
Public type As String
Public rowcount As String
Protected Sub login_sbts_Authenticate(sender As Object, e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles login_sbts.Authenticate
Dim bauthenticated As Boolean = False
bauthenticated = isValidUser(login_sbts.UserName, login_sbts.Password)
If bauthenticated Then
e.Authenticated = True
Else
e.Authenticated = False
End If
lblInfo.Text = type
FormsAuthentication.RedirectFromLoginPage(Me.login_sbts.UserName, True)
If type = "ADMIN" Then
Response.Redirect("dailynote.aspx")
Else
Response.Redirect("other.aspx")
End If
End Sub
Private Function isValidUser(ByVal username As String, ByVal pwd As String) As [Boolean]
Dim con As New SqlConnection("Data Source=localhost;Initial Catalog=sbts-scheduling;User ID=userid;Password=password;")
Dim cmd As New SqlCommand("select * from tblusers where UserName='" & username & "' and Password='" & pwd & "'")
cmd.Connection = con
Dim dt As New DataTable()
Dim da As New SqlDataAdapter(cmd)
con.Open()
da.Fill(dt)
con.Close()
If dt.Rows.Count = 0 Then
strLoginErrorMsg = "Invalid User Name/Password"
dt.Dispose()
Return False
Else
type = dt.Rows(0).Item("UserType").Trim()
Session("usertype") = type
End If
Return True
End Function
Protected Sub login_sbts_LoginError(sender As Object, e As System.EventArgs) Handles login_sbts.LoginError
login_sbts.FailureText = strLoginErrorMsg
End Sub