Я новичок, когда дело доходит до работы с контролем входа vb.net так терпите меня ...vb.net управления Войти повторно не аутентичности
Tp начать Я использую ASP.net 4.0 и VB. сеть.
Итак, у меня есть простой элемент управления, который проверяет пользователя на базе базы данных sql. (Я хостинг с hostgator, поэтому я не могу использовать обычные окна auth). Теперь самый большой вопрос, который у меня возникает, заключается в том, что если сеанс истекает, и вы перенаправляетесь на страницу входа в систему, неважно, что вы вводите имя пользователя/пароль в форме входа в систему, это просто позволяет вам прямо, даже если имя пользователя и пароль неверны или пользователь не существует?
Как я могу убедиться, что элемент управления login действительно аутентифицирует пользователя?
Любая помощь очень ценится. Спасибо!
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
вы, вероятно, должны опубликовать соответствующие части вашего файла web.config здесь. system.web, аутентификация и авторизация –
, включите ваш код на первой странице, который должен содержать ваш раздел asp: login или asp: logincontrol .., который когда-либо вы используете. –
. Кстати, у вас есть уязвимость SQLInjection здесь, в которой я не обращался в моем примере кода ответа. Вам следует использовать StoreProcedures и передать эти значения в хранимую процедуру с помощью New SqlClient.Data.SqlParameters (@param, "") (в вашей коллекции SqlCommand.Parameter), при этом присваивается значение SqlCommand.CommandType = CommandType.StoredProcedure. Savy –