Uso de WebRequest para obtener cookies para iniciar sesión automáticamente en Sharepoint Online, obteniendo varios errores

Estoy siguiendo este tutorial para autenticar Sharepoint Online de forma remota, pero lo estoy haciendo en C #.

http://allthatjs.com/2012/03/28/remote-authation-in-sharepoint-online/

Puedo obtener el SAML de STS sin ningún problema, pero parece que no puedo enviar este token a Sharepoint para recibir las Cookies para iniciar sesión. A continuación se encuentra mi código. !

<code> //Send cookie to SPO. The token is from STS.
        byte[] spbyteArray = Encoding.UTF8.GetBytes(theToken);
        WebRequest sprequest = WebRequest.Create("https://login.microsoftonline.com/login.srf?wa=wsignin1.0&rpsnv=2&ct=1335885737&rver=6.1.6206.0&wp=MBI&wreply=https%3A%2F%2Fcamida.sharepoint.com%2F_forms%2Fdefault.aspx&lc=1033&id=500046&cbcxt=mai&wlidp=1&guest=1");
        sprequest.Method = "POST";
        sprequest.ContentLength = spbyteArray.Length;
        sprequest.ContentType = "application/x-www-form-urlencoded";
        sprequest.Headers.GetType().InvokeMember("ChangeInternal", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, sprequest.Headers, new object[] { "Host", "mydomain.sharepoint.com" });
        Stream spdataStream = sprequest.GetRequestStream();
        spdataStream.Write(spbyteArray, 0, spbyteArray.Length);
        spdataStream.Close();

        //Get response from SPO
        WebResponse spresponse = sprequest.GetResponse();
        spdataStream = spresponse.GetResponseStream();
        StreamReader spreader = new StreamReader(spdataStream);

        // Read the content.
        string spresponseFromServer = spreader.ReadToEnd();
</code>

Si uso la URL en el tutorial obtengo un 403 prohibido. La URL que estoy usando es a la que redirige cuando llegué ahttp://mydomain.sharepoint.com

Cualquier ayuda y consejo es muy apreciado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta