如何保护从Windows服务托管的WCF Web服务?

时间:2012-03-27 17:28:56

标签: wcf web-services wcf-security wcf-client

我有一个关于WCF Web服务安全性的问题。目前,我们正在开发一个Android移动项目并使用wcf Web服务进行数据传输和操作。 我们使用basicHttpBinding并将Web服务托管为 Window Service

我们目前没有任何安全模式,如果他们知道服务地址,我担心每个人都可以使用我们的网络服务。 例如,我们有一个服务方法,它将返回字符串值。目前,我可以将该服务添加到其他可视工作室项目和移动项目中,我们可以随时使用。

//WCF Service Method
public string DoWork()
{
      return "This is return string!";
}

    //We can consume it like below from other dot net project by adding service reference.
   //Actually, those are not real client.
    ServiceReference1.WebServiceClient serv = new TestingPrj.ServiceReference1.WebServiceClient();
    string result = serv.DoWork();

我的问题是如何为真正的客户保护我的网络服务?我不希望其他项目和人员使用我们的Web服务。

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用基于SSL的基本身份验证。基本身份验证要求客户端具有用户名/密码对,只有您的应用程序才能知道。如果身份验证纯粹是为了知道您的客户端是否正确(而不是知道哪个用户正在连接),那么您可以使用单个硬编码的用户名/密码。

也应该使用SSL,因此凭证不会以明文形式传播,也可能被嗅探。

答案 1 :(得分:0)

使用ssl证书是最安全的方式。