public static string GetAccessTokenRequiredForRequest(HttpRequestMessage httpRequestMessage, SharePointAcsContext spContext) { string accessToken = null; if ((spContext.SPAppWebUrl != null) && httpRequestMessage.RequestUri.AbsoluteUri.StartsWith(spContext.SPAppWebUrl.AbsoluteUri)) { accessToken = spContext.UserAccessTokenForSPAppWeb; } else if ((spContext.SPHostUrl != null) && httpRequestMessage.RequestUri.AbsoluteUri.StartsWith(spContext.SPHostUrl.AbsoluteUri)) { accessToken = spContext.UserAccessTokenForSPHost; } else { accessToken = spContext.CreateAppOnlyClientContextForSPHost().ToString(); } if (String.IsNullOrEmpty(accessToken)) { throw new Exception("Request url did not target the host web or appweb, unable to continue proxying request. The request url is misformatted or you should not be using the proxy."); } return accessToken; }
public async Task <ActionResult> Index() { SharePointAcsContext spContext = (SharePointAcsContext)SharePointContextProvider.Current.GetSharePointContext(HttpContext); string accessToken = spContext.UserAccessTokenForSPHost; System.Web.HttpContext.Current.Session["AccessToken"] = accessToken; System.Web.HttpContext.Current.Session["SPHostUrl"] = spContext.SPHostUrl; //Host Web string hostToken = spContext.UserAccessTokenForSPHost; StringBuilder hostRequestUri = new StringBuilder() .Append(spContext.SPHostUrl) .Append("_api/web/title"); ViewBag.hostTitle = await GetWebTitle(hostRequestUri, hostToken); //App Web string appToken = spContext.UserAccessTokenForSPAppWeb; StringBuilder appRequestUri = new StringBuilder() .Append(spContext.SPAppWebUrl) .Append("_api/web/title"); ViewBag.appTitle = await GetWebTitle(appRequestUri, appToken); //Project Context using (var projectContext = ContextHelper.GetClientContext(Request.Url)) { // Query the Project Context //projectContext.Load(projectContext.Projects); // projectContext.ExecuteQuery(); projectContext.Load(projectContext.Web, web => web.Title); projectContext.ExecuteQuery(); ViewBag.Message = projectContext.Web.Title; } return(View()); }
public static string GetAccessTokenRequiredForRequest(HttpRequestMessage httpRequestMessage, SharePointAcsContext spContext) { string accessToken = null; if ((spContext.SPAppWebUrl != null) && httpRequestMessage.RequestUri.AbsoluteUri.StartsWith(spContext.SPAppWebUrl.AbsoluteUri)) { accessToken = spContext.UserAccessTokenForSPAppWeb; } else if ((spContext.SPHostUrl != null) && httpRequestMessage.RequestUri.AbsoluteUri.StartsWith(spContext.SPHostUrl.AbsoluteUri)) { accessToken = spContext.UserAccessTokenForSPHost; } else { accessToken = spContext.CreateAppOnlyClientContextForSPHost().ToString(); } if (String.IsNullOrEmpty(accessToken)) { throw new Exception("Request url did not target the host web or appweb, unable to continue proxying request. The request url is misformatted or you should not be using the proxy."); } return(accessToken); }