问题标签 [distributed-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32 浏览

macos - 如何验证 NSConnection 请求?

NSConnection(让我们忽略现在已弃用的事实。)

我有一个工具可以通过服务端口接受到 NSConnection 的连接。我有一个启动该工具然后连接到它的应用程序。那部分有效。

现在,我想确保只有我的特定应用程序可以与该工具对话,并且该工具拒绝来自任何其他工具/应用程序的连接。

我怎样才能最好地做到这一点?

我有一个想法:

由于应用程序启动了工具,它可以将“秘密”作为参数传递给工具,然后每当我将其函数之一作为 NSDistributedObject 调用时,我都会将相同的秘密传递给工具。但是,这意味着我必须将这个额外的参数传递给我所做的每个调用,我认为这是不必要的开销。

我认为当应用程序打开与工具的连接时,我可以接受或拒绝连接,即只有一次。有NSConnectionDelegate,我怀疑我必须在其authenticateComponents:withData:处理程序中实现身份验证检查,但我找不到任何可以解释如何执行此操作的示例。我的意思是,该连接尝试中是否有任何数据可以识别请求连接的应用程序,例如它的 PID?