我在html页面中加入了两个activex,用以读取mac以及cpu序列号。但是页面一直提示“在此页面上的activex控件和本页上的其他部分的交互可能不安全。”
网上说的什么ocx已经ole什么的在.net里边都没有。
下面的代码是我在网上找的,直接粘贴进去就可以使用了。但是现在要在客户端不显示提示。也不能降低浏览器安全。求大神帮忙啊,我都自己搞好几天了~~~~
代码如下:
<object id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" >
</object>
<object id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223">
</object>
<script language="JScript" type="text/javascript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">
document.forms[0].txtMACAddr.value = unescape(MACAddr);
document.forms[0].cpuid.value = unescape(p.ProcessorID);
</script>
<script language="JScript" type="text/javascript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">
if (objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if (objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
}
</script>
<script type="text/javascript">
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
var e = new Enumerator(properties);
for (; !e.atEnd() ; e.moveNext())
{
var p = e.item();
cpuid = p.ProcessorID;
}
</script>
<script type="text/javascript">
var MACAddr;
var cpuid;
service.Security_.ImpersonationLevel = 3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
想悬赏100的,但是似乎我没有。。。。。。求大神帮忙
这种不是b/s做的。。你想客户端不设置安全性,你的acx无法使用,而且还只能用ie浏览器
求大大们帮忙啊,我都搞好几天了。大神快出现吧
似乎是可以申请证书的,找公安部还是微软来着。这部是技术问题你得咨询行政方面的人。
这个方式要是大神们觉得不行,换其他方式。只要安全,对用户来说不用配置就OK。
刚刚看网上大神说的这个系统自带的activex,但是怎么才能把ie提示的框让他不显示。这个就可以了,但是同样不能降低安全性。