One simple solution to secure web service is to use Basic authentication for the web service.
You can set Basic authentication (for the specific virtual directory which hosts web service) using IIS.
You need to create a local user in the Web server (for example WSUser /WSPassword)with local logon rights so that Basic authentication works properly.
In the consuming application, use the following code when your proxy calls the Web Service.
//1.Create an instance of the CredentialCache class.
CredentialCache cache = new CredentialCache();
// 2.Add a NetworkCredential instance to CredentialCache - use the URL of the Web Service
cache.Add( new Uri(myProxy.Url), "Negotiate", new NetworkCredential("WSUser", "WSPassword", "Domain"));
//3.Assign CredentialCache to the Web service proxy
myProxy.Credentials = cache;
You can also use HTTPS with Basic Authentication for better security of web service.