Guest User

Untitled

a guest
Jul 16th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. try
  2. {
  3. ////retrieve current user profile details
  4. Uri targetWeb = new Uri(Request.QueryString["SPHostUrl"]);
  5. string targetRealm = TokenHelper.GetRealmFromTargetUrl(targetWeb);
  6. var responseToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, targetWeb.Authority, targetRealm);
  7.  
  8. HttpWebRequest request = HttpWebRequest.CreateHttp(String.Format("{0}/_api/SP.UserProfiles.PeopleManager/GetMyProperties", Request["SPHostUrl"].Substring(0, 8 + Request["SPHostUrl"].Substring(8).IndexOf("/"))));
  9. request.Accept = "application/json;odata=verbose";
  10. request.Headers.Add("Authorization", String.Format("{0} {1}", responseToken.TokenType, responseToken.AccessToken));
  11. Stream s = request.GetResponse().GetResponseStream();
  12.  
  13. using (StreamReader sr = new StreamReader(s))
  14. using (Newtonsoft.Json.JsonReader reader = new JsonTextReader(sr))
  15. {
  16. JsonSerializer serializer = new JsonSerializer();
  17.  
  18. // read the json from a stream
  19. // json size doesn't matter because only a small piece is read at a time from the HTTP request
  20. var p = serializer.Deserialize(reader);
  21.  
  22. }
  23. }
  24. catch (Exception ex){}
  25.  
  26. //To get the request digest value.
  27. static async Task<string> GetDigestAsync(string endPoint, HttpClient client)
  28. {
  29. string digest = null;
  30. HttpResponseMessage response = await client.PostAsync(endPoint, new StringContent(""));
  31. string jsonReturned = await response.Content.ReadAsStringAsync();
  32. JObject objReturned = JObject.Parse(jsonReturned);
  33. if (response.IsSuccessStatusCode)
  34. {
  35. digest = await response.Content.ReadAsStringAsync();
  36. }
  37. JObject rss = JObject.Parse(digest);
  38.  
  39. return rss["d"]["GetContextWebInformation"]["FormDigestValue"].ToString();
  40. }
  41.  
  42. //Make a post request to get the request digest value
  43. var digest = await GetDigestAsync(siteUrl + "/_api/contextinfo", client);
  44.  
  45. //Now include this digest value as a header in your actual POST requests calls
  46. client.DefaultRequestHeaders.Add("X-HTTP-Method", "POST");
  47. client.DefaultRequestHeaders.Add("X-RequestDigest", digest);
Add Comment
Please, Sign In to add comment