【发布时间】:2013-05-23 12:42:12
【问题描述】:
我有一个简单的服务合同,定义为:
[ServiceContact]
public interface IEcho
{
[OperationContract]
void Hello(string value);
}
在本地 WCF 服务中实现(通过net.pipe:// 地址访问)。
我需要知道谁在调用该服务。
基本上,出于安全原因,我需要拒绝任何未经我签名的程序集对IHello.Echo 的调用。 Hello 方法不应该对不受信任的调用者可用。
我依稀记得在旧的 .NET 1 远程处理时代,我们可以遍历堆栈并检查调用者的身份。但是如何使用 WCF 做到这一点?
【问题讨论】:
-
我相信现在 WCF 中已经包含了安全措施,您可能需要阅读一些 materials on WCF security。
-
我已通读文档;似乎没有什么适合我的需要。如果 .NET 本身不能确保调用程序集的身份,那么我看不到如何实现我的目标。恶意调用者很容易模仿我添加到客户端 DLL 的任何安全措施(例如,证书不会有任何好处)。
标签: c# .net wcf security servicecontract