C#对js解密时运行js函数

多参数的参考注释部分

需提前在COM中添加Microsoft Scipt Control 1.0的库,如下

C#/.NET在JS解密时运行JS中的方法


        private object UseJavaScrpt(string funName,string argument)
        {
            //读取js文件路径
            string path = AppDomain.CurrentDomain.BaseDirectory + "shah.js";
            //加载js文件的所有内容 保存到变量str2中
            string str2 = System.IO.File.ReadAllText(path);
            //调用js方法,如果该js方法有参数,就传呗
            //string fun = string.Format(@"sayHello('{0}','{1}','{2}')", 23, 34, "+");//多参数
            string fun = string.Format(@"{0}('{1}')", funName,argument);
            //执行,并得到返回结果
            object result = ExecuteScript(fun, str2);
            Trace.WriteLine(fun);
            Trace.WriteLine("解析:" + result);
            return result;
        }
        /// <summary>
        /// 执行JS
        /// </summary>
        /// <param name="sExpression">参数体</param>
        /// <param name="sCode">JavaScript代码的字符串</param>
        /// <returns></returns>
        private object ExecuteScript(string sExpression, string sCode)
        {
            MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
            scriptControl.UseSafeSubset = true;
            scriptControl.Language = "JScript";
            scriptControl.AddCode(sCode);
            try
            {
                return scriptControl.Eval(sExpression);
            }
            catch (Exception ex)
            {
            }
            return null;
        }

相关文章: