Object 字典对象丢失其内容经典ASP 用户名: 密码:

Object 字典对象丢失其内容经典ASP 用户名: 密码:,object,vbscript,asp-classic,session-variables,Object,Vbscript,Asp Classic,Session Variables,这是我用经典ASP创建的基本登录页面。当我输入一个用户并通过,然后单击Register,它会将用户名和密码存储在字典中,没有问题。但是,当我单击submit按钮时(在填写注册凭据之后),字典的内容不知怎的被删除了。因此,如果Session(“credentials”).Exists(userd)=true,那么“语句将失败。我甚至尝试将“凭证”作为一个普通变量,而不使用会话。它还是不起作用,字典的内容被删除了。我怎样才能克服这个问题?提前谢谢 这是第一次 凭据。添加用户,通过 设置会话(“凭据”

这是我用经典ASP创建的基本登录页面。当我输入一个用户并通过,然后单击Register,它会将用户名和密码存储在字典中,没有问题。但是,当我单击submit按钮时(在填写注册凭据之后),字典的内容不知怎的被删除了。因此,如果Session(“credentials”).Exists(userd)=true,那么“语句将失败。我甚至尝试将“凭证”作为一个普通变量,而不使用会话。它还是不起作用,字典的内容被删除了。我怎样才能克服这个问题?提前谢谢

这是第一次 凭据。添加用户,通过

设置会话(“凭据”)=凭据

应该在

之后,我会重新考虑这种方法;因为我还是ASP的初学者,所以我只想将凭证存储在字典中。我想暂时避免使用数据库。话虽如此,你建议我应该采取什么方法?将凭证存储在查询字符串中是否有效?我这样做只是为了学习,所以它不必是安全的;Session(“pass”)=“xyz”/Session(“user”)=“bob”很有趣,我会给它一个快照!非常感谢!:)嘿,乔治,欢迎加入:)请你进一步详细说明你的答案。第一步是对代码行进行格式化,第二步是添加更详细的说明。请考虑提供更多的说明。并相应地格式化您的帖子
<%@ language = "VBScript"%>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="">
Username:<br> <input type = "text" name = "user"/><br>
Password:<br> <input type = "password" name = "pass"/><br>
<input type = "submit" name = "register_button" value = "Register"/>
<input type = "submit" name = "submit_button" value = "Submit"/>
</form> 

<%
set credentials = Server.CreateObject("Scripting.Dictionary")
set Session("credentials") = credentials 

if Request.form("register_button") <> "" then
    dim user
    dim pass
    pass = Request.form("pass")
    user = Request.form("user")

    Session("credentials").Add user, pass   
end if

if Request.form("submit_button") <> "" then 
    dim userd
    dim passd
    passd = Request.form("pass")
    userd = Request.form("user")
    if Session("credentials").Exists(userd) = true then
        if Session("credentials").Item(userd) = passd then
            Response.Write("ACCESS GRANTED")
        else 
            Response.Write("ACCESS DENIED")
        end if
    else
        Response.Write("USERNAME DOES NOT EXIST")
    end if
end if
%>

</body>
</html>