当前位置 : 主页 > 网络编程 > ASP >

如何在ASP.NET应用程序中唯一标识客户端计算机?

来源:互联网 收集:自由互联 发布时间:2021-06-24
我有一个在托管环境中运行的服务器应用程序,但在客户端的本地网络中创建打印作业(在NAT后面;其机制不相关). 为了将打印作业发送到连接到工作站的打印机,我需要识别工作站.用户在
我有一个在托管环境中运行的服务器应用程序,但在客户端的本地网络中创建打印作业(在NAT后面;其机制不相关).

为了将打印作业发送到连接到工作站的打印机,我需要识别工作站.用户在工作站之间移动,因此我无法永久地将用户与工作站/打印机关联.简单的解决方案是要求用户识别他登录的机器,例如通过从列表中选择,但这是不方便的并且受用户错误的影响.

我已经淘汰的选项:

>主机头变量(无法识别可发送)
> Cookies,支持用户选择.这有点解决了用户错误的可能性,但并非如此.
> HTML5 DOM存储 – 客户端的浏览器不支持

还有其他想法吗?

编辑:我确实可以选择puttnig这个特定的功能(创建一个打印作业)到一个胖客户端应用程序.然后可以配置应用程序,问题就会消失.但是用户体验将不得不在浏览器和Windows应用程序之间切换.

我不会讨论你的奇怪场景,只回答你的问题:如何识别机器?

那么,目前HTTP协议没有紧密的解决方案.所有机器共享相同的IP,因为它们位于NAT之后.你无法获得MAC地址.您无法获取硬件标识符.您无法确定所有计算机是否会向服务器发送不同的标头(即所有不同的浏览器/版本).

你可以依赖cookies.尝试创建某种形式的机器身份验证,或更好的机器识别页面,从每台机器浏览一次,告诉服务器哪台打印机在该机器上使用,然后在该机器上设置永久cookie.

一旦cookie不被删除(也许你可以随时更新cookie,你永远不会知道……)你有一个简单的机制.

这是我能建议的最好的:(

网友评论