When migrating a MapPoint WebService application from Windows to Mono/Linux, I encountered “401 Unauthorized” errors. Network analysis revealed slight differences in HTTP headers. Here’s the solution using specific credential handling:

var cred = new System.Net.NetworkCredential("---user---", "---password---");
_credCache = new CredentialCache();
_credCache.Add( new Uri( "http://findv3.staging.mappoint.net" ), "Digest", cred );
_finder = new FindServiceSoap();
_finder.Credentials = _credCache;
_finder.PreAuthenticate = true;