以文本方式查看主题 - 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 |
-- 作者: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 |