我在 WCF 中实现了一个 Web 服务。此服务只会被单个客户端调用,即具有静态 IP 地址的站点。我想实现简单的安全性,以验证对服务的所有调用仅在来自此特定静态 IP 时才有效。
做这个的最好方式是什么?
我在 WCF 中实现了一个 Web 服务。此服务只会被单个客户端调用,即具有静态 IP 地址的站点。我想实现简单的安全性,以验证对服务的所有调用仅在来自此特定静态 IP 时才有效。
做这个的最好方式是什么?
在 .NET 3.5 上,您可以在服务代码中执行此操作以找出调用者的 IP 地址:
public void YourServiceMethod(string value)
{
OperationContext context = OperationContext.Current;
MessageProperties messageProperties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpointProperty =
messageProperties[RemoteEndpointMessageProperty.Name]
as RemoteEndpointMessageProperty;
string clientIPAddress = endpointProperty.Address;
int clientPort = endpointProperty.Port;
}
最初见于 Keyvan Nayyeri 的博客文章。
马克