c# - habilitar - Usar WebRequest para obtener cookies para iniciar sesión automáticamente en Sharepoint Online, obteniendo varios errores
habilitar cookies firefox (2)
Cuando solicite a SharePoint, debe configurar el Agente de usuario o, de lo contrario, devuelve un 403 Esta línea;
sprequest.UserAgent = "Mozilla/5.0 (Windows NT 6.0; rv:12.0) Gecko/20100101 Firefox/12.0";
Es todo lo que tomó.
Estoy siguiendo este tutorial para autenticar de forma remota Sharepoint Online, pero lo estoy haciendo en C #.
http://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/
Puedo obtener el SAML de STS sin ningún problema, pero parece que no puedo enviar este token a Sharepoint para recuperar las Cookies con el fin de iniciar sesión. A continuación está mi código, disculpe cualquier error evidente, soy nuevo en esto !
//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();
Si utilizo la URL en el tutorial obtengo un 403 prohibido. La URL que estoy usando es a la que redirecciona cuando llegué a http://mydomain.sharepoint.com
Cualquier ayuda y consejo es muy apreciado.
Parece que no está agregando ninguna cookie, que podría ser necesaria. Si transfiere su WebRequest a HttpWebRequest , puede trabajar con cookies . Vea c # WebRequest usando la cookie WebBrowser .
Además, me familiarizaría con una herramienta como Fiddler para inspeccionar las solicitudes y las respuestas que envíe desde su navegador. Esto le permite ver exactamente lo que se envía de un lado a otro, para que pueda intentar duplicar / emular las solicitudes en C #.