首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过JavaScript、dll或jar文件获取客户端信息?

通过JavaScript、dll或jar文件获取客户端信息?
EN

Stack Overflow用户
提问于 2017-09-23 23:07:12
回答 1查看 850关注 0票数 2

我在JSP中为我们的客户建立了一个系统。现在,我想收集具有用户权限的客户端信息。以下信息将从我们的客户那里得到。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. UUID 2. Hard disk serial number 3.Ip Address 4. MAC ADdress 5.PC AND OS info

目前,这是用activeX对象完成的。但该系统仅在internet explorer浏览器中运行。我想改变系统,使它将是独立的浏览器。

我认为有几个architecture.Let me允许简短地讨论这些体系结构:

第一个体系结构(通过JavaScript):

当客户端访问我们的网页时,会打开一个弹出,说明“您允许运行此脚本吗?”如果用户允许,那么脚本将驻留在客户端pc中。该脚本将负责获取客户端的信息,pc和发送信息到我们的服务器。您可以始终考虑客户端将允许运行脚本,就像我们将指示客户端运行脚本一样。

第二体系结构(通过jar文件)

jar文件将驻留在每个客户端PC中。该文件将负责从客户端pc获取信息,并将信息发送到我们的服务器。每个客户都会得到一个软件。安装该软件后,jre将被安装,一个jar文件将驻留在特定的目录中。另一种在客户端pc中驻留jar文件的方法,当客户端访问我们的web应用程序时,是否可以将jar文件推送到客户端pc?我们希望得到他们的许可。

第三个体系结构(通过dll文件):

用C#编写的dll文件将驻留在客户端pc中。这个dll文件将负责从客户端pc获取信息。当客户第一次访问我们的web应用程序时,他们会问他们是否愿意给予他们运行dll的权限?如果给予许可,则dll文件将保留客户端pc,并负责提供客户端pc的信息。

,上面的架构有意义吗?,你能告诉我上面的架构的优点和缺点吗?如果上述架构/方法无法完成必须由我完成的任务,我可以采取哪些步骤来获取客户端信息?

我在google上对这个话题做了很多研究。我所了解到的是,现代浏览器限制从客户端获取信息。但我想得到客户的宝贵许可。

我试过的是:

我尝试使用几个js库来完成这个任务,比如clientjs、nodejs。但是clientjs无法提供一些信息,如UUID、硬盘序列号。我编写了一个java代码(桌面环境),它可以接收pc的所有信息。但是我不能从jsp页面调用这个代码。我还可以编写一个C#代码,它可以提供客户端信息的输出。但我不能从我的jsp页面上调用它。

最后注:

希望我想说的都清楚了。请帮助我完成这个任务,或者至少给我一些关于我如何做它的想法/建议!

最后一个提示是,我们的系统正在使用ActiveX收集用户的信息。这是唯一的IE绑定。我只想让它独立于浏览器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-24 21:45:38

不能只在浏览器中执行dll方法(这是出于安全原因)。为了在浏览器中执行一些编译后的代码,您必须使用一个插件。

这个问题有几个解决办法。经过一些链接后,似乎可以通过以下选项。

备选案文1:

备选案文2:

为那些浏览器创建插件是使用NPAPI编写的。如何编写浏览器插件?

备选方案3:

编写签名的小程序来调用从html或任何web应用程序运行的dll。它几乎可以在所有浏览器上运行。下面是示例的链接。

转义沙箱:从applet访问本机方法

备选案文4:

使用EdgeJS可以完成相同的任务。您可以从加载在前端javascript中的DLL (在clientside javascript中加载dll )找到Call函数的答案。诀窍是在V8和CLR之间封送函数,当事件触发时,将消息发送给javascript。

从加载在前端javascript中的DLL调用函数(在客户端javascript中加载dll )

备选方案5:

构建一个C#应用程序(仅在使用.NET时使用windows,所有平台(如果您只使用CoreCLR)侦听滑动和触发事件,以便在所有连接的websockets上发送数据。

需要从浏览器调用客户端DLL

备选案文6:

您可以用C#编写客户端应用程序,该应用程序连接到JS,然后传输数据。WebSocket可以检查特定的数据块,并以您希望的方式处理它。

我用了我在一个使用指纹扫描仪的项目中所描述的方式。效果很好!如果你加一点密码,就更好了!

从前端javascript加载的DLL调用函数。

备选案文7:

  1. 创建一个可以安装在用户计算机上的应用程序。
  2. 在此应用程序中运行嵌入式HTTP服务器。
  3. 确保嵌入式HTTP服务器返回CORS头。
  4. 在HTTP服务器API中写入逻辑和端点.
  5. 在页面上使用JS查询嵌入式HTTP服务器(如果它运行的话)。

最后一句话:

ActiveX只是在IE中实现浏览器插件的一种方法。所有其他浏览器都使用不同的插件接口。然后,如果用户将在浏览器中安装您的插件-这个插件将从JS中获得,您可以使用它在dll中执行一些功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46387516

复制
相关文章
关于 循环引用问题
多个对象相互持有,A对象强引用B对象,同时B对象也强引用于A对象,两者相互等待对方发消息告诉自己需要Release,一直等待,形成闭环,内存无法释放,导致内存泄露。
honey缘木鱼
2019/12/20
3.3K0
关于 循环引用问题
fastjson 重复引用和循环引用问题
数据传输使用json格式再方便不过了。 fastjson 由阿里巴巴那伙人使用Java语言编写,号称最快的JSON库 前两天遇到一个问题 后台的数据转化为json字符串后发送到前台出现了$ref字样的东西,后来明白了这是引用,在传输的数据中出现相同的对象时,fastjson默认开启引用检测将相同的对象写成引用的形式. 说到引用分为两种,重复引用和循环引用
Mshu
2018/10/31
2.6K0
PHP 循环引用的问题
问题 为了引出问题, 先来看下面一段代码: <?php $arr = [ 'a', 'b', 'c', 'd', ]; foreach ($arr as &$each){ e
烟草的香味
2019/07/25
3.7K0
PHP 循环引用的问题
Spring循环依赖问题修复
拆分的时候,把错误都处理完后,准备把工程起起来,发现弹簧的循环依赖问题。具体问题如下
端游岚
2018/12/19
3.5K0
Spring循环依赖问题修复
Golang代码循环依赖问题
其实就 package A 引入了 package B ,然后 package B 又引入了 package A ,因此形成了循环依赖。
王小明_HIT
2021/12/02
1.2K0
Golang代码循环依赖问题
python模块循环引用导致问题
这个问题遇到几次了,代码写多了之后,莫名其妙报错。现在终于知道了是因为循环引用的问题。重现一下:
py3study
2020/01/15
7360
python循环引用带来的MemoryError错误解决
在工作中,有一天django服务开始报错MemoryError的错误,没有遇到过这样的错误,上来之后还是很蒙蔽的,问了几个业内的人,他们 都给我说让我改服务器里面配置的东西, 因为是要给大家用的,服务器要保证长久运行,不能临时去修改这个,导致在大家无法使用平台呢,我想着是一个服务启动的时候 引发的,短暂的停服后,并没有解决掉这个问题。还是依旧存在,如果用命令去释放,只会短暂的解决。自己刚开始 也没有想到gc模块,在百度搜索, 找半天 终于找到了,知乎的链接,大概的方式就是用gc 直接去处理。
雷子
2021/03/15
1.5K0
解决循环依赖问题:优雅处理依赖关系的技巧
在软件开发中,依赖是不可避免的。我们经常需要在应用程序的不同组件之间建立依赖关系,以实现功能的模块化和复用。然而,有时候依赖关系可能变得复杂,甚至导致循环依赖的问题。在本文中,我们将通过项目中实际遇到的异常探讨一些解决循环依赖问题的技巧,帮助你在开发过程中优雅地处理依赖关系。
修己xj
2023/08/25
8650
解决循环依赖问题:优雅处理依赖关系的技巧
小记 TypeScript 中的循环引用问题
平时编写 TypeScript 代码时,一般都倾向于使用模块(Module),通过结合使用 import 和 export 我们便可以方便的进行模块的导入和导出.
用户2615200
2020/10/15
5.8K0
iOS常见的内存问题——循环引用
小编在这段儿时间测试过程中发现了好多内存问题,其中较大部分都是由于循环引用造成的内存泄漏,这里小编就借此类问题来给大家分享一下循环引用引发的原因及常见解决方案。
用户5521279
2019/12/10
1.8K0
iOS常见的内存问题——循环引用
Python 实战项目解决循环依赖问题
由于我在 Python 领域还是个初学者,没有遇到类似问题,但是根据分析,问题应该是出在了 循环依赖。
宋天伦
2023/10/20
4140
Python 实战项目解决循环依赖问题
由于我在 Python 领域还是个初学者,没有遇到类似问题,但是根据分析,问题应该是出在了 循环依赖。
宋天伦
2023/10/20
2350
Spring如何解决循环依赖问题
(1)通过构造方法进行依赖注入时产生的循环依赖问题。 (2)通过setter方法进行依赖注入且是在多例(原型)模式下产生的循环依赖问题。 (3)通过setter方法进行依赖注入且是在单例模式下产生的循环依赖问题。 在Spring中,只有第(3)种方式的循环依赖问题被解决了,其他两种方式在遇到循环依赖问题时都会产生异常。这是因为:
红目香薰
2022/11/29
8500
Spring 如何解决循环依赖问题?
这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定能够一下子思考出个中奥秘。
Java技术栈
2019/11/28
1.6K0
Spring 如何解决循环依赖问题?
三探循环依赖 → 记一次线上偶现的循环依赖问题
Spring 的循环依赖,源码详细分析 → 真的非要三级缓存吗 中讲到了循环依赖问题
青石路
2022/05/10
8410
三探循环依赖 → 记一次线上偶现的循环依赖问题
通过循环引用问题来分析Spring源码
本文主要分析Spring的循环依赖问题。开始正文之前,我们需要定义这2个类。LoopReferenceA中引用LoopReferenceB,LoopReferenceB中引用LoopReferenceA。
用户2032165
2018/09/03
1.4K0
通过循环引用问题来分析Spring源码
Spring中解决循环依赖报错的问题
当一个ClassA依赖于ClassB,然后ClassB又反过来依赖ClassA,这就形成了一个循环依赖:
Happyjava
2019/07/16
2.9K0
Spring中解决循环依赖报错的问题
iOS循环引用
iOS循环引用 当前类的闭包/Block属性,用到了当前类,就会造成循环引用 此闭包/Block应该是当前类的属性,我们经常对Block进行copy,copy到堆中,以便后用。 单方向引用是不会产生循环引用。需要self引用闭包/Block,Block中使用self。 有两个规则: 如果你是通过引用来访问一个实例变量,那么将强引用至self。 如果你是通过值来访问一个实例变量,那么将直接强引用至这个“值”变量。 Object-C Block循环引用情况 一般来说我们总会在设置Block之后,在合适的时间
用户1941540
2018/05/11
7980
面试题:Spring 的循环依赖问题
# [Spring 的循环依赖问题](https://www.cnblogs.com/mghio/p/15024461.html)
程序员黄小斜
2021/12/06
5330
循环依赖 之 手写代码模拟spring循环依赖
如上图: A依赖了B, B同时依赖了A和C , C依赖了A. 这也是循环依赖. , 形成了一个闭环
用户5546570
2020/11/12
7960
循环依赖 之 手写代码模拟spring循环依赖

相似问题

循环依赖关系-结构和函数指针相互引用

211

Django模型相互引用

15

C++类相互依赖,导致循环依赖错误

45

相互使用的类的循环引用问题

38

具有相互引用/循环依赖的类的复制构造函数

22
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文