gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:10:31 26 4
gpt4 key购买 nike

我有一个在托管环境中运行的服务器应用程序,但在客户端的本地网络中创建打印作业(在 NAT 后面;其机制不相关)。

为了将打印作业发送到连接到工作站的打印机,我需要识别工作站。用户在工作站之间移动,因此我无法将用户与工作站/打印机永久关联。简单的解决方案是要求用户识别他正在登录的计算机,例如通过从列表中进行选择,但这会带来不便并且容易出现用户错误。

我已经消除的选项:

  • 主机 header 变量(未发送任何可识别内容)
  • Cookie,支持用户选择。这在一定程度上解决了用户错误的可能性,但实际上并非如此。
  • HTML5 DOM 存储 - 客户端浏览器不支持

还有其他想法吗?

编辑:我确实可以选择将此特定功能(创建打印作业)放入胖客户端应用程序中。然后当然可以配置应用程序,问题就会消失。但用户体验会因必须在浏览器和 Windows 应用程序之间切换而受到影响。

最佳答案

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

目前 HTTP 协议(protocol)还没有封闭形式的解决方案。所有机器共享相同的 IP,因为它们位于 NAT 之后。您无法获取 MAC 地址。您无法获取硬件标识符。您无法确定所有机器都会向服务器发送不同的 header (即所有不同的浏览器/版本)。

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

一旦 cookie 不会被删除(也许您可以随时更新 cookie,您永远不知道......),您就拥有了一个简单机制。

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

关于asp.net - 如何在 ASP.NET 应用程序中唯一标识客户端计算机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com