I am one of the owners of MSNPSharp, a .NET msn protocol library. Today I found that I can't get addressbook through WLM's webservice, the service just throw an exception saying "Passport authentication failure" after I post the request. That's because we haven't pass the correct CacheKey to the server(yes, M$ will check the cachekeys in their latest service: v14.01.2303.0002). So we must ask for a cachekey for each service before we post our request.
For example:
If you want to post a request to https:/contacts.msn.com/abservice/abservice.asmx and you just haven't got a CacheKey at hand, post the request to https:/byrdr.omega.contacts.msn.com/abservice/abservice.asmx first, it will return a CacheKey, a preferred host URL, and, a HTTP 301 error(redirection). Then fill that key into "<CacheKey></CacheKey>" field, post your request to https:/[preferred host]/abservice/abservice.asmx , you will get what you want.
Besides, the following list is the corresponding url you can get cachekey from:
https://byrdr.omega.contacts.msn.com/ab ... rvice.asmx : https:/contacts.msn.com/abservice/abservice.asmx or https:/omega[number].contacts.msn.com/abservice/abservice.asmx
https://byrdr.omega.contacts.msn.com/ab ... rvice.asmx: https:/contacts.msn.com/abservice/SharingService.asmx or https:/omega[number].contacts.msn.com/abservice/SharingService.asmx
https://tkrdr.storage.msn.com/storagese ... store.asmx : https:/storage.msn.com/storageservice/schematizedstore.asmx
I post this because tooooooo many people direct me to your side
Sorry for my bad English.
Good luck!


