классическая проверка пароля ASP - PullRequest
3 голосов
/ 10 июня 2011

Если бы у меня была страница входа, на которой были введены пользовательские данные для имени пользователя и пароля, как бы я разместил эту информацию на другой странице, которая будет использоваться для хранения подпрограмм и процедур, чтобы другие страницы включали эту страницу, чтобы я мог минимизировать количествораз я набираю строку подключения.

Итак, у меня есть login.asp, в который я хочу опубликовать учетные данные для входа в файл include.asp, который никогда не будет открыт, если пользовательские данные для входа в систему верны, тогда он будет направлен наtable.asp.Если указано неверно, на странице login.asp должно появиться сообщение об ошибке.

Я предоставил код для файла include.asp, который пользователь никогда не увидит ниже

Dim objCon, SQL, objRS

'Connect to Database
sub connect()

    Set objCon = CreateObject("ADODB.Connection")
    Set objRS = CreateObject("ADODB.Recordset")
    objCon.Open "Provider=SQLOLEDB.1;Password=xxxx;Persist Security Info=True;User ID=xxxx;Initial Catalog=Customer;Data Source=xxxx"   
    SQL = "SELECT * FROM Customer"  
    objRS.open SQL, objCon

end sub


sub connectionClose()

    objRS.close
    objCon.close   

end sub

Ответы [ 2 ]

1 голос
/ 10 июня 2011

позвольте мне опубликовать с тегом code, чтобы он помог.

чтобы у вас были login.asp, validateLogin.asp, table.asp (все они содержат include.asp)

Login.aspотправьте учетные данные в validatelogin.asp

один раз в validatelogin.asp

dim username : username = request.form("username")
dim password: password = request.form("password")
'here for security purpose u will want to replace all the single quote in username and password with 2x single quote (you do that to avoid SQL injection form bots / hackers
username = replace(username ,"'","''")
password = replace(password,"'","''")
sqlValidateUser = "SELECT top 1 * FROM Customer where username='"&&"' and password = ''"
set rsValidateUser = objCon.execute(sqlValidateUser)
if not rsValidateUser.eof then
   session("authentified") = "1"
   response.redirect("table.asp")
   response.end()
else
   response.redirect("YOUR_ERROR_PAGE.asp")
   response.end()
end if
rsValidateUser.close

, затем в вашем include.asp вы захотите что-то вроде:

'Validating if your NOT on login.asp or loginvalidate.asp ... if not Check if your logged in ... if not redirect to error page or login form
    if not instr(lcase(request.servervariable("url")),"login.asp") > 0 and not instr(lcase(request.servervariable("url")),"validatelogin.asp") > 0 then
       if session("authentified") = "1" then
          response.redirect("your_Error_page.asp")
       end if
    end if

не 100% уверен насчет кода include.asp. Я не проверял ни один из них, но он должен выглядеть так

0 голосов
/ 10 июня 2011

В корневой папке создайте папку \ includes.В \ includes добавьте страницу «functions.asp» и разместите на этой странице общие функции доступа к данным.Включить НЕТ HTML - только сценарий на стороне сервера.

На странице аутентификации добавьте директивы #include, которые указывают на вашу папку включений: пример:

<!-- #include file = "../includes/functions.asp" -->

Затем со своей страницы авторизации вы вызываете любойфункции, определенные в functions.asp.

...