我在 regasm.exe 中注册了 ac# dll,我试图在我的经典 asp 应用程序上调用它,下面是我的代码部分:
我正在向函数发送一个字典对象作为参数
Dim parameters
Set parameters=Server.CreateObject("Scripting.Dictionary")
For Each Item1 In Request.Form
fieldName = Item1
fieldValue = Request.Form(Item1)
parameters.Add fieldName, fieldValue
Next
这是我调用函数的地方
Set CudExternal=Server.Createobject("CudExternal.Security")
Set signature = CudExternal.sign(parameters)
当我尝试调用该函数时,出现此错误。
下面是我的dll代码:
public class Security
{
private const String SECRET_KEY = "dd6b7d26fb0c4db7891b28718a1a468";
public string sign(IDictionary<string, string> paramsArray)
{
return sign(buildDataToSign(paramsArray), SECRET_KEY);
}
private string sign(String data, String secretKey)
{
UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] keyByte = encoding.GetBytes(secretKey);
HMACSHA256 hmacsha256 = new HMACSHA256(keyByte);
byte[] messageBytes = encoding.GetBytes(data);
return Convert.ToBase64String(hmacsha256.ComputeHash(messageBytes));
}
private string buildDataToSign(IDictionary<string, string> paramsArray)
{
String[] signedFieldNames = paramsArray["signed_field_names"].Split(',');
IList<string> dataToSign = new List<string>();
foreach (String signedFieldName in signedFieldNames)
{
dataToSign.Add(signedFieldName + "=" + paramsArray[signedFieldName]);
}
return commaSeparate(dataToSign);
}
private string commaSeparate(IList<string> dataToSign)
{
return String.Join(",", dataToSign);
}
public string outputr(string data)
{
return data;
}
}
我该如何解决??...在此先感谢。