对vb不熟悉,麻烦写个asp的dll组件,实现读取硬盘卷序列号 
如题,希望能发下vb代码,和asp中的调用代码

解决方案 »

  1.   

    不见得可行,因为可能涉及到运行权限问题,通常的WEB站点分配会用NTFS分区,那么站点所在的目录安全与IIS的配置安全可能会影响到你的操作。如果说你给站点分配的是管理员权限,估计不会有这种问题,既然这样,完全可以在ASP里调用WMI来取得你想要的序列号或其他的信息。也没必要用VB再去开发什么小组件这种东西。如果你是想保证你的代码安全,那么用ASP这么做完全没有什么意义,即使你调用VB写的DLL来验证,但别人把你的代码改一下不就可以用了?如果你认为ASP的加密可以防止这种事那就大错特错,在我眼里,ASP就是个开源的东西,没有什么秘密可言。如果你想通过什么ASP转DLL或EXE的方式来做,那么告诉你,这是很不可取的,流量少可能看不出什么,但是流量一大点,因为你的是基于进程,IIS会为你的每个客户创建一个进程来处理,到时候你就可以看看你的服务器到底能同时处理多少个进程了,呵呵。
    如果你想把代码安全提上去,建议使用PHP或ASP.NET这种东西来开发,在ASP里这么弄意义不大。
      

  2.   


    首先十分感谢你,今天没有环境测试你得dll,所以想顺便问下,将dll注册在服务器上,通过asp调用,但是有个问题,就是asp程序在ntfs下有权限设置,正常情况下,不通过调用dll,asp程序权限是不足得,没有权限访问驱动盘符,所以不能获取卷的序列号
    通过这个dll是否可以忽略权限问题,换句话说这个dll得执行权限是超管权限?
      

  3.   

    没有权限当然不行。但是如果你都有权限部署个ActiveX组件了,我想你也应该有权限修改你IIS的权限。
    dll中所能访问的权限取决于IIS进程所能访问的权限。有两个办法:一个是将IUSR_XXX提升权限,另一个是修改文件系统的权限来适应IIS用户。
    你可以下载一个ASPCheck探针程序来看看你空间现在的权限如何。把结果贴出来我可以帮你看看。