我正在使用 WCF NamedPipesService 在两个进程之间执行 IPC。保护 WCF 服务以便只有我的进程可以访问它们的最简单方法是什么?
我尝试查看 WCF 文档,但它看起来非常复杂,并且似乎主要关注对用户进行身份验证而不是客户端进程。
最佳答案
无法想到任何现成的命名管道绑定(bind)。不过,总有一个解决方法。
自定义 header
您可以轻松实现IClientMessageInspector接口(interface),以便在每次服务调用时发送一些自定义身份验证信息(例如处理关键字或登录名和密码)。然后实现 IDispatchMessageInspector 来验证服务端的 header 。在这里您可以找到有关 message inspectors in WCF 的更多信息.
Windows 身份验证
只需使用一个windos帐户,除了您的应用程序之外,没有人可以使用,并像这样配置Windows身份验证
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
我个人更喜欢带有自定义 header 的选项,但是您真的需要对流程进行身份验证吗?没有人可以从公共(public)场所访问您的服务。您认为您的组织内有人可以攻击您的服务吗?我的意思是,对于您的情况来说,这可能并不是真正正确的绑定(bind)。
关于.net - 保护 NamedPipes WCF 服务的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103069/