以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  项目保密及安全问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117237)

--  作者:qaz17909
--  发布时间:2018/4/9 13:51:00
--  项目保密及安全问题
采用阿里云数据库进行数据及文件存放,想控制开发好的软件仅能在公司使用,防止有人把软件考出公司导致数据泄露,让其即使有用户名和密码也无法使用软件,如何实现?
--  作者:有点甜
--  发布时间:2018/4/9 14:26:00
--  

首先你公司的网络有什么特点没有?比如你公司访问外网的话,是同一个ip,或者之类的特征。

 

如果没有这些特征,如何区分是不是在公司里面使用?那就只能是用每一个电脑的网卡、或者ComputeId作为依据了。

 

你的用户那里,网卡号或者computeid号,登陆的时候,判断此号是否在你【网卡表】里面。


--  作者:qaz17909
--  发布时间:2018/4/9 14:47:00
--  
你指的是物理地址吗?写在afteropen project对吗,具体代码如何写呢?
--  作者:有点甜
--  发布时间:2018/4/9 15:33:00
--  
以下是引用qaz17909在2018/4/9 14:47:00的发言:
你指的是物理地址吗?写在afteropen project对吗,具体代码如何写呢?

 

可以用ComputerID。把各个电脑的computerID保存在一个表里面。

 

获取computerId,这样写,命令窗口,执行 msgbox(computerid)

 

AfterOpenProject查询你的表格,看computerid是否在里面,即可,如

 

Dim fdr As DataRow = DataTables("表").Find("id = \'" & computerid & "\'")

If fdr Is Nothing Then

    msgbox("没有权限")

    basemainform.Close

End If

 


--  作者:qaz17909
--  发布时间:2018/4/9 16:41:00
--  
如果别的电脑没有安装foxtable,请问如何查血computerID?
--  作者:有点甜
--  发布时间:2018/4/9 18:29:00
--  
以下是引用qaz17909在2018/4/9 16:41:00的发言:
如果别的电脑没有安装foxtable,请问如何查血computerID?

 

这个查不到。ComputerID是foxtable独有的。

 

不然你就换成网卡号,如

 

Dim nics() As System.Net.NetworkInformation.NetworkInterface = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces
msgbox(nics.length)
For Each nic As object In nics
    msgbox(nic.name & " " & nic.GetPhysicalAddress.tostring)
Next


--  作者:qaz17909
--  发布时间:2018/4/9 21:27:00
--  
用网卡号的话,仍旧是先建立一个表,把要纳入的网卡号先列出,在open project的代码可否提供下
--  作者:有点蓝
--  发布时间:2018/4/9 21:37:00
--  

Dim nics() As System.Net.NetworkInformation.NetworkInterface = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces

Dim find As Boolean

For Each nic As object In nics

    Dim fdr As DataRow = DataTables("表").Find("网卡 = \'" & nic.GetPhysicalAddress.tostring & "\'")

    If fdr IsNot Nothing Then

        find = True

        Exit For

    End If

Next

If find = False Then

    msgbox("没有权限")

    basemainform.Close

End If