Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- try
- {
- ////retrieve current user profile details
- Uri targetWeb = new Uri(Request.QueryString["SPHostUrl"]);
- string targetRealm = TokenHelper.GetRealmFromTargetUrl(targetWeb);
- var responseToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, targetWeb.Authority, targetRealm);
- HttpWebRequest request = HttpWebRequest.CreateHttp(String.Format("{0}/_api/SP.UserProfiles.PeopleManager/GetMyProperties", Request["SPHostUrl"].Substring(0, 8 + Request["SPHostUrl"].Substring(8).IndexOf("/"))));
- request.Accept = "application/json;odata=verbose";
- request.Headers.Add("Authorization", String.Format("{0} {1}", responseToken.TokenType, responseToken.AccessToken));
- Stream s = request.GetResponse().GetResponseStream();
- using (StreamReader sr = new StreamReader(s))
- using (Newtonsoft.Json.JsonReader reader = new JsonTextReader(sr))
- {
- JsonSerializer serializer = new JsonSerializer();
- // read the json from a stream
- // json size doesn't matter because only a small piece is read at a time from the HTTP request
- var p = serializer.Deserialize(reader);
- }
- }
- catch (Exception ex){}
- //To get the request digest value.
- static async Task<string> GetDigestAsync(string endPoint, HttpClient client)
- {
- string digest = null;
- HttpResponseMessage response = await client.PostAsync(endPoint, new StringContent(""));
- string jsonReturned = await response.Content.ReadAsStringAsync();
- JObject objReturned = JObject.Parse(jsonReturned);
- if (response.IsSuccessStatusCode)
- {
- digest = await response.Content.ReadAsStringAsync();
- }
- JObject rss = JObject.Parse(digest);
- return rss["d"]["GetContextWebInformation"]["FormDigestValue"].ToString();
- }
- //Make a post request to get the request digest value
- var digest = await GetDigestAsync(siteUrl + "/_api/contextinfo", client);
- //Now include this digest value as a header in your actual POST requests calls
- client.DefaultRequestHeaders.Add("X-HTTP-Method", "POST");
- client.DefaultRequestHeaders.Add("X-RequestDigest", digest);
Add Comment
Please, Sign In to add comment