DotNetOpenId, an open source project from which you can reuse code, uses the HTTP wrapper classes through which all calls are made. During the test, a false HTTP handler is introduced so that responses can be programmatically set before the call. It has a different mode in which it hosts its own ASP.NET site so that the full actual stack can be implemented.
This works well, although it was not pulled out as a standalone solution. If you are interested in reuse, here are some relevant source links. And you can ask for help by integrating it into dotnetopenid@googlegroups.com.
Live: StandardWebRequestHandler.cs
Mocks: MockHttpRequest.cs , TestWebRequestHandler.cs
source share