difference between http.context.user and thread.currentprincipal and when to use them?

I have just recently run into an issue running an asp.net web app under visual studio 2008. I get the error ‘type is not resolved for member…customUserPrincipal’. Tracking down various discussion groups it seems that there is an issue with Visual Studio’s web server when you assign a custom principal against the Thread.CurrentPrincipal.