Страница: 1 |
Страница: 1 |
Вопрос: Не работает валидатор
Добавлено: 16.10.08 16:10
Автор вопроса: katt
Здравствуйте. Скажите пожалуйста, в чем закралась ошибка?
Есть форма регистрации, на ней TextBox:
<asp:TextBox ID="BoxLogin" runat="server"></asp:TextBox>
Для прорверки индивидуальности логина есть валидатор:
<asp:CustomValidator ID="CustomValidatorLogin" runat="server" ErrorMessage="Этот Логин занят" ControlToValidate="BoxLogin" OnServerValidate="CustomValidatorLogin_ServerValidate"></asp:CustomValidator>
Подпрограмма проверки:Protected Sub CustomValidatorLogin_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidatorLogin.ServerValidate
Dim dbConn As OleDbConnection
Dim dCmd As OleDbCommand
Dim dr As OleDbDataReader
Dim strConnection As String
Dim strSQL As String
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\auth.mdb;Persist Security Info=False"
dbConn = New OleDb.OleDbConnection(strConnection)
dbConn.Open()
strSQL = "SELECT login FROM AppUser WHERE login=" + args.Value + ""
dCmd = New OleDbCommand(strSQL, dbConn)
dCmd.Parameters.Add(New OleDbParameter("login", args.Value))
dr = dCmd.ExecuteReader()
If (dr.Read()) Then
args.IsValid = False
End If
dr.Close()
dbConn.Close()
End Sub
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #1
Добавлено: 17.10.08 11:56
Если база 2003 и ниже, то поправь запрос:
на
писал по памяти, где-то так это выглядит.
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 28.10.08 01:30
Ребята, ну не надо уж ТАК позориться, а?
Может хотя бы одинарные ковычки заэскейпм?
args.value.tostring.replace("'", "''"
А кто-то еще говорил что с выходом Visual Studio 2008 SQL-Injection умер..............................
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 28.10.08 08:29
SQL-Injection жил, жив и будет жить!!! Он вечен! )))
Номер ответа: 4
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #4
Добавлено: 28.10.08 08:38
он умрет, когда у кодеров руки начнут расти от туда, откуда положено, и голова будет использоваться не только для еды
dCmd = New OleDbCommand(strSQL, dbConn)
dCmd.Parameters.Add(New OleDbParameter("@login", args.Value))
dr = dCmd.ExecuteReader()