asp.net - JavaScript 中的 ActiveXobject 错误

标签 asp.net javascript

我在 Default.aspx 页面中使用该脚本。

<script id="clientEventHandlersJS" type="text/javascript">

        function Button1_onclick() {
            var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
            var service = locator.ConnectServer(".");
            var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
            var e = new Enumerator (properties);
            document.write("<table border=1>");
            dispHeading();
            for (;!e.atEnd();e.moveNext ())
            {
                var p = e.item ();
                document.write("<tr>");
                document.write("<td>" + p.Caption + "</td>");
                document.write("<td>" + p.IPFilterSecurityEnabled + "</td>");
                document.write("<td>" + p.IPPortSecurityEnabled + "</td>");
                document.write("<td>" + p.IPXAddress + "</td>");
                document.write("<td>" + p.IPXEnabled + "</td>");
                document.write("<td>" + p.IPXNetworkNumber + "</td>");
                document.write("<td>" + p.MACAddress + "</td>");
                document.write("<td>" + p.WINSPrimaryServer + "</td>");
                document.write("<td>" + p.WINSSecondaryServer + "</td>");
                document.write("</tr>");
            }
            document.write("</table>");
        }
        function dispHeading()
        {
            document.write("<thead>");
            document.write("<td>Caption</td>");
            document.write("<td>IPFilterSecurityEnabled</td>");
            document.write("<td>IPPortSecurityEnabled</td>");
            document.write("<td>IPXAddress</td>");
            document.write("<td>IPXEnabled</td>");
            document.write("<td>IPXNetworkNumber</td>");
            document.write("<td>MACAddress</td>");
            document.write("<td>WINSPrimaryServer</td>");
            document.write("<td>WINSSecondaryServer</td>");
            document.write("</thead>");
        }
    </script>

在上面的代码中我试图获取客户端的MAC地址。但我收到错误 在第一行 `var locator = new ActiveXObject ("WbemScripting.SWbemLocator");'

无法创建该 activeX 对象,请帮助我。

最佳答案

WbemScripting 对象未标记为“脚本安全”,这是正确的!如果是的话,任何网页都可以找出您正在运行的进程,终止它们,甚至启动新的应用程序!谈论安全漏洞...

WbemScripting 对象用于 Windows Scripting用于网页。

如果您有权访问客户端计算机,请尝试使用 WScript.exe 或 CScript.exe 从 .js 文件运行代码。 如果客户端计算机在您的网络内并且您知道其名称,您也可以尝试远程运行该脚本;只需替换“.”即可行中的周期

locator.ConnectServer(".");

按机器名称。因此,如果远程计算机的名称是 MACHINE,您应该将该行更改为

locator.ConnectServer("MACHINE");

同样,这需要您使用 WScript 或 CScript 从 .js 文件运行脚本。

最后,您可以尝试降低客户端计算机上 Internet Explorer 的安全设置。但只有当您从不使用该机器在恶劣的互联网上冲浪时才可以这样做,因为它会打开您的浏览器、您的整个 PC 以及连接到它的所有网络,以访问各种令人讨厌的东西...

关于asp.net - JavaScript 中的 ActiveXobject 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688686/

相关文章:

c# - 来自 HttpHandler 的图像不会在浏览器中缓存

ASP.NET 访问路径被拒绝,在 Web 服务器上

c# - 为什么我的表单在验证后不回发?

javascript - 使用 jquery 更改背景图像颜色?

javascript - div float right 在 IE 中不起作用

c# - 默认按钮不适用于多个验证组

asp.net - Linq To Sql Intellisense 属性名称

javascript - 检查 promise 期间的进度

javascript - 使用javascript显示基于两个html选择的输出

javascript - 使用 JavaScript 动态更改元素样式属性