我正在努力为旧的经典asp网站添加一个功能,并遇到了一个有趣的问题.页面上的以下行导致有用的错误"Object required:''"
strServerName = Request.ServerVariables("server_name")
Run Code Online (Sandbox Code Playgroud)
当我附加一个调试器来查看它时,请求实际上是空的,我不明白这是怎么回事?这一行存在于几个页面上,除此之外没有任何问题.在这种情况下,页面由另一页面的重定向执行.
我一直在寻找一天左右的解决方案,并且找不到任何有用的东西.我很绝望,任何想法都会非常感激.
哦,如果需要更多信息,请不要犹豫,打电话给我.
谢谢!
更新1
根据要求,下面是包含在<%%>标记中的整个代码段.该块作为文件中的第一个代码存在(名为"order-results-instant.asp"):
<%
strServerName = Request.ServerVariables("server_name")
strServerName = UCase(strServerName)
strServerURL = "http://localhost/cbr"
strServerURLhttps = "https://localhost/cbr"
strConnect = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=CBR; Integrated Security=SSPI"
Dim objConn
Dim sql_stmt
Dim rs
%>
Run Code Online (Sandbox Code Playgroud)
更新2
我使用了以下两种方法将执行重定向到此页面 - 这可能会导致请求丢失?
'Response.Redirect strServerURL & "/order-results-instant.asp?gwstep=1"
Response.Write "<META HTTP-EQUIV=""refresh"" content=""5;URL=" & strServerURL & "/order-results-instant.asp?gwstep=1"">"
Run Code Online (Sandbox Code Playgroud) 所以我有一种情况需要在url上传递一些参数.为了在url上没有id = 1,我添加了一个简单的加密方法来模糊这些值.这在.Net土地上运行良好.然而,现在,我需要从经典的asp页面指向这个期望参数加密的.net页面.我真的不太熟悉加密或经典的asp,并希望有人能够指导我一个好的JS库,或者只是提供这个函数的经典asp版本?如果.Net代码有任何问题,我也很乐意听到有关这方面的反馈意见.
这是加密方法:
public static string Encrypt(string Input)
{
try
{
key = Encoding.UTF8.GetBytes(EncryptionKey.Substring(0, 8));
var des = new DESCryptoServiceProvider();
Byte[] inputByteArray = Encoding.UTF8.GetBytes(Input);
var ms = new MemoryStream();
var cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception)
{
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
这里是解密方法(我需要这个来解密经典的asp加密文本):
public static string Decrypt(string Input)
{
try
{
key = Encoding.UTF8.GetBytes(EncryptionKey.Substring(0, 8));
var des = new DESCryptoServiceProvider();
var inputByteArray = Convert.FromBase64String(Input);
var ms = new MemoryStream();
var …Run Code Online (Sandbox Code Playgroud)