Just to document what worked in the end, I added the following line to my CreateRequest Method
Thread.CurrentPrincipal = new ClientRolePrincipal(new HttpListenerBasicIdentity(Username, Password));
I'm not really sure if this is the best way to handle it, but it does work at least.