我有一个关于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服务。
答案 0 :(得分:1)
最简单的方法是使用基于SSL的基本身份验证。基本身份验证要求客户端具有用户名/密码对,只有您的应用程序才能知道。如果身份验证纯粹是为了知道您的客户端是否正确(而不是知道哪个用户正在连接),那么您可以使用单个硬编码的用户名/密码。
也应该使用SSL,因此凭证不会以明文形式传播,也可能被嗅探。
答案 1 :(得分:0)
使用ssl证书是最安全的方式。