Quantcast
Channel: SharePointCommunity
Viewing all articles
Browse latest Browse all 6649

REST 403 forbidden

$
0
0

Hallo!
Ich versuche über eine externe C# Anwendung Listenitems über die REST Schnittstelle einzufügen.
Es scheitert aber immer irgendwo und es erscheint 403 forbidden.

Ich habe es mal mit diesem Beipiel Probiert (hier soll nur ein Item aktualisiert werden)

  public static string GetFormDigest()
        {
            string formDigest = null;

            string resourceUrl = "http://sp13-dev-awe/_api/contextinfo";
            HttpWebRequest wreq = HttpWebRequest.Create(resourceUrl) as HttpWebRequest;
            wreq.UseDefaultCredentials = true;
            wreq.Method = "POST";
            wreq.Accept = "application/json;odata=verbose";
            wreq.ContentLength = 0;
            wreq.ContentType = "application/json";
            string result;
            WebResponse wresp = wreq.GetResponse();

            using (StreamReader sr = new StreamReader(wresp.GetResponseStream()))
            {
                result = sr.ReadToEnd();
            }

            var jss = new JavaScriptSerializer();
            var val = jss.Deserialize<Dictionary<string, object>>(result);
            var d = val["d"] as Dictionary<string, object>;
            var wi = d["GetContextWebInformation"] as Dictionary<string, object>;
            formDigest = wi["FormDigestValue"].ToString();

            return formDigest; //Digest auslesen funktioniert

        }

        public static void UpdateListItem()
        {
            string result = string.Empty;
            Uri uri = new Uri("http://sp13-dev-awe/_api/web/lists/getbytitle('Kontakte')/items(1)");
            HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create(uri);
            wreq.Credentials = CredentialCache.DefaultNetworkCredentials;

            wreq.Method = "POST";
            wreq.Accept = "application/json; odata=verbose";
            wreq.ContentType = "application/json; odata=verbose";
            wreq.Headers.Add("X-HTTP-Method", "MERGE");
            wreq.Headers.Add("IF-MATCH", "*");
            wreq.Headers.Add("X-RequestDigest", GetFormDigest());

            string stringData = "{'__metadata': { 'type': 'SP.Data.KontakteListItem' }, 'Title': 'whatever'}";
            wreq.ContentLength = stringData.Length;
            StreamWriter writer = new StreamWriter(wreq.GetRequestStream());
            writer.Write(stringData);
            writer.Flush();

            WebResponse wresp = wreq.GetResponse(); <-- Hier wirft der Debugger die 403
            using (StreamReader sr = new StreamReader(wresp.GetResponseStream()))
            {
                result = sr.ReadToEnd();
            }

        }
    }

Komm grad nicht weiter. Muss ich irgendwo noch eine Änderung am SharePoint vornehmen??
Im IIS steht die Digestauthenifizierung auf deaktiviert, macht aber keinen Unterschied, wenn ich sie aktiviere.


Viewing all articles
Browse latest Browse all 6649


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>