.NET HttpWebRequest oAuth 401 no autorizado

Necesito consumir un recurso web desde una aplicación VB.NET. He recuperado exitosamente el token de acceso y estoy listo para usarlo para hacer llamadas al recurso protegido. Sin embargo, cada vez que llamo al recurso protegido recibo una respuesta 401 no autorizada porque el campo de Autorización no se ha agregado al encabezado.

Aquí está mi código.

WebRequest = DirectCast(Net.WebRequest.Create(ApiUri), HttpWebRequest)
WebRequest.Method = "POST"
WebRequest.ContentType = "application/json"
WebRequest.ContentLength = Bytes.Length
Dim RequestStream As IO.Stream = WebRequest.GetRequestStream
RequestStream.Write(Bytes, 0, Bytes.Length)
RequestStream.Close()
WebRequest.Headers("Authorization") = "OAuth " & _
                                      "oauth_version=""1.0""," & _
                                      "oauth_nonce=""" & Nonce & """," & _
                                      "oauth_timestamp=""" & TimeStamp & """," & _
                                      "oauth_consumer_key=""" & ConsumerKey & """," & _
                                      "oauth_token=""" & Token & """," & _
                                      "oauth_signature_method=""HMAC-SHA1""," & _
                                      "oauth_signature=""" & Signature & """"
WebResponse = DirectCast(WebRequest.GetResponse(), HttpWebResponse)

A continuación, superviso la solicitud utilizando Fiddler. Todo lo que veo en Fiddler es la solicitud con la respuesta 401 como se muestra a continuación (excluyendo los cuerpos).

Solicitud

POST ***url*** HTTP/1.0
Content-Type: application/json
Host: ***host***
Content-Length: 45
Connection: Keep-Alive

Respuesta

HTTP/1.0 401 Unauthorized
X-Powered-By: PHP/5.3.13
WWW-Authenticate: Basic realm="***realm***"
Content-type: application/json
Content-Length: 79
Connection: keep-alive
Date: Mon, 07 Jan 2013 01:13:22 GMT
Server: lighttpd/1.4.28

En todas partes que he leído en Internet, indica que HttpWebRequest debe primero desafiar al servidor y recibir una respuesta 401 como lo veo aquí. Luego debe intentar nuevamente con el campo Autorización agregado al encabezado y obtener la respuesta 200 OK. Esta segunda parte no sucede. ¿No entiendo cómo funciona esto correctamente, o estoy haciendo algo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta