Классическая форма запроса и переменные asp

Мне нужно немного помощи здесь. Я получил этот простой скрипт имени пользователя / пароля, чтобы включить страницу входа. Это в основном форма, запрашивающая имя пользователя / пароль и сравнивающая некоторую информацию внутри кода.

If Request.Form("FormUsername") = "username" AND Request.Form("FormPassword") = "password" Then

Я хотел бы сравнить информацию о пользователе / ​​пароле из некоторой переменной, например, иметь второй файл с переменными:

<%
'Username Variables
Dim PCUser, PCPass

PCUser = "username"
PCPass = "password"
%>

затем включите файл на страницу входа:

<!--#include file="Users.inc"-->

И тогда сможете прочитать переменные в request.form:

If Request.Form("FormUsername") = "& PCUser &" AND Request.Form("FormPassword") = "& PCPass &" Then

Это то, что я пытался до сих пор и не работал:(Может кто-нибудь помочь мне понять, почему???

Если я сделаю response.write в конце страницы, он покажет мне значения переменных:

<%
Response.Write("user= " & PCUser & "<br />")
Response.Write("pass= " & PCPass & "<br />")
%>

заранее спасибо

ПК

2 ответа

Пытаться

If Request.Form("FormUsername") = PCUser 
      AND Request.Form("FormPassword") = PCPass Then

2-я попытка:

response.write "FormUsername: " & Request.Form("FormUsername")
response.write "PCUser: " & PCUser
response.write "Equals: " & (Request.Form("FormUsername") = PCUser)

Проверьте, используя вышеперечисленное как на главной странице, так и во включаемом файле.

Более простой подход может заключаться в том, чтобы поместить имя пользователя и пароль в переменную приложения, в global.asa в корне вашего сайта:

<script language=vbscript runat=server>
    SUB Application_OnStart
            Application.contents("username") = "username"
            Application.contents("password") = "password" 
    END SUB
</script>

Это делает ваше имя пользователя и пароль доступными во всем приложении. На своих страницах вы можете проверить это так (без необходимости включения):

If Request.Form("FormUsername") = Application.contents("username") AND Request.Form("FormPassword") = Application.contents("password") Then
    ...
End if

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

GLOBAL.ASA:

<script language=vbscript runat=server>
    ' run when the application is started for the first time or re-started
    SUB Application_OnStart
            Application.contents("username") = "username"
            Application.contents("password") = "password" 
    END SUB

    ' run for each user when he or she first visits the site
    SUB Session_OnStart 
            Session.Contents("loggedIn") = False
    END SUB
</script>

Ваша страница входа может установить для сеанса значение ИСТИНА, когда пользователь успешно входит в систему:

If Request.Form("FormUsername") = Application.contents("username") AND Request.Form("FormPassword") = Application.contents("password") Then
    Session("loggedIn") = True
End if

В верхней части каждой страницы, которую вы хотите защитить, вы можете сделать это:

If NOT Session("loggedIn") Then 
    Response.redirect("/login.asp")    ' redirect to your login page
End If

Этот последний фрагмент кода можно поместить во включаемый файл и добавить в начало всех страниц, которые вы хотите защитить.

Обратите внимание, что это очень элементарная система безопасности, и код не проверен.

Надеюсь это поможет

Другие вопросы по тегам