Używanie WebRequest do uzyskiwania plików cookie w celu automatycznego logowania się do Sharepoint Online, uzyskiwania różnych błędów
Wykonuję ten samouczek, aby zdalnie uwierzytelnić się w Sharepoint Online, ale robię to w C #.
http://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/
Mogę pobrać SAML z STS bez problemu, ale nie mogę wysłać tego tokena do Sharepoint, aby otrzymać ciasteczka, aby się zalogować. Poniżej znajduje się mój kod, usprawiedliwiający wszelkie rażące błędy, jestem nowy w tym !
<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>
Jeśli użyję adresu URL w samouczku, otrzymam 403 zabronione. Adres URL, którego używam, jest adresem, do którego przekierowuje, gdy do niego docieramhttp://mydomain.sharepoint.com
Każda pomoc i porada są bardzo mile widziane.