2009-09-08 59 views
0

我有一個WCF實現的Web服務。這項服務只會由一個客戶端(一個擁有靜態IP地址的站點)調用。我希望實現簡單的安全性,以驗證所有對該服務的調用只有在來自此特定靜態IP時纔有效。WCF安全 - 數據來源安全

這樣做的最好方法是什麼?

回答

1

在.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的blog post

馬克

+0

我希望與配置,而不是代碼來完成,但是這肯定會做的伎倆,如果沒有辦法與配置做到這一點。感謝你的回答。 – Odd 2009-09-08 23:08:54

+0

據我所知,沒有辦法根據配置中的IP限制呼叫者,對不起。 – 2009-09-09 04:57:23