0

このチュートリアルに従ってリモートで SharePoint Online を認証していますが、C# で行っています。

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

問題なく STS から SAML を取得できますが、このトークンを Sharepoint に送信して、ログインするために Cookie を受け取ることができないようです。 !

 //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();

チュートリアルの URL を使用すると、403 禁止になります。私が使用している URL は、http://mydomain.sharepoint.comに到達したときにリダイレクトされる URL です。

どんな助けやアドバイスも大歓迎です。

4

2 に答える 2

3

SharePoint から要求する場合は、ユーザー エージェントを設定する必要があります。そうしないと、403 This 行が返されます。

 sprequest.UserAgent = "Mozilla/5.0 (Windows NT 6.0; rv:12.0) Gecko/20100101 Firefox/12.0";

かかったのはそれだけです。

于 2012-05-02T16:23:15.513 に答える
1

必要になる可能性のあるCookieを追加しているようには見えません。WebRequestHttpWebRequestにキャストすると、 Cookieを操作できます。WebBrowser cookieを使用したc#WebRequestを参照してください。

また、ブラウザから送信されたリクエストとレスポンスを検査するために、Fiddlerのようなツールに精通します。これにより、何が送受信されているかを正確に確認できるため、C#でリクエストを複製/エミュレートすることができます。

于 2012-05-01T16:51:16.097 に答える