protected void Page_Load(object sender, EventArgs e) { HtmlTableWriter table1 = new HtmlTableWriter(); foreach (var param in Request.QueryString.AllKeys) { table1.AddRow("Request.QueryString['" + param + "']", Request.QueryString[param].ToString()); } pageContent.Controls.Add(new LiteralControl("<h3>Query String Parameters</h3>")); pageContent.Controls.Add(new LiteralControl(table1.ToString())); HtmlTableWriter table2 = new HtmlTableWriter(); string urlSourcePage = Request.QueryString["Source"].ToString(); string linkSourcePage = "<a href='" + urlSourcePage + "'>" + urlSourcePage + "</a>"; table2.AddRow("[Source]", linkSourcePage); string urlList = Request.QueryString["SPHostUrl"].ToString() + Request.QueryString["ListURLDir"].ToString(); string linkList = "<a href='" + urlList + "' target='_blank'>" + urlList + "</a>"; table2.AddRow("[SPHostUrl] + [ListURLDir]", linkList); string urlItem = Request.QueryString["SPHostUrl"].ToString() + Request.QueryString["ItemURL"].ToString(); string linkItem = "<a href='" + urlItem + "' target='_blank'>" + urlItem + "</a>"; table2.AddRow("[SPHostUrl] + [ItemURL]", linkItem); pageContent.Controls.Add(new LiteralControl("<h3>Links back to host web</h3>")); pageContent.Controls.Add(new LiteralControl(table2.ToString())); }
protected void Page_Load(object sender, EventArgs e) { uriHostWeb = Cache["uriHostWeb"].ToString(); accessTokenString = Session["accessTokenString"].ToString(); HtmlTableWriter table = new HtmlTableWriter(); ClientContext clientContext = TokenHelper.GetClientContextWithAccessToken(uriHostWeb.ToString(), accessTokenString); clientContext.Load(clientContext.Web, site => site.Title); clientContext.Load(clientContext.Web.Lists, lists => lists.Where(list => !list.Hidden)); clientContext.ExecuteQuery(); table.AddRow("Site Title", clientContext.Web.Title); string ListOfLists = "<ul>"; foreach (var list in clientContext.Web.Lists) { ListOfLists += "<li>" + list.Title + "</li>"; } ListOfLists += "</ul>"; table.AddRow("Lists", ListOfLists); PlaceholderMain.Controls.Add(new LiteralControl(table.ToString())); }
protected void cmdGetLists2_Click(object sender, EventArgs e) { using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity)) { Web site = clientContext.Web; clientContext.Load(site); ListCollection Lists = clientContext.Web.Lists; clientContext.Load(Lists, lists => lists.Where(list => !list.Hidden) .Include(list => list.Title, list => list.DefaultViewUrl)); clientContext.ExecuteQuery(); var table = new HtmlTableWriter(); foreach (var list in Lists) { string defaultViewUrl = site.Url + list.DefaultViewUrl; string link = "<a target='_blank' href='" + defaultViewUrl + "' >" + defaultViewUrl + "</a>"; table.AddRow(list.Title, link); } WriteContentToPage("<h2>Lists in Host Web (optimized query)</h2>"); WriteContentToPage(table.ToString()); } }
protected void Page_Load(object sender, EventArgs e) { uriHostWeb = Cache["uriHostWeb"].ToString(); accessTokenString = Session["accessTokenString"].ToString(); HtmlTableWriter table = new HtmlTableWriter(); HttpWebRequest request1 = (HttpWebRequest)HttpWebRequest.Create(uriHostWeb.ToString() + "/_api/Web/title"); request1.Headers.Add("Authorization", "Bearer " + accessTokenString); HttpWebResponse response1 = (HttpWebResponse)request1.GetResponse(); StreamReader reader1 = new StreamReader(response1.GetResponseStream()); XDocument doc1 = XDocument.Load(reader1); string SiteTitle = doc1.Root.Value; table.AddRow("Site Title", SiteTitle); HttpWebRequest request2 = (HttpWebRequest)HttpWebRequest.Create(uriHostWeb.ToString() + "/_api/Web/lists/?$filter=Hidden eq false"); request2.Headers.Add("Authorization", "Bearer " + accessTokenString); HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse(); StreamReader reader2 = new StreamReader(response2.GetResponseStream()); XDocument doc2 = XDocument.Load(reader2); XNamespace ns_dataservices = "http://schemas.microsoft.com/ado/2007/08/dataservices"; string ListOfLists = "<ul>"; foreach (XElement ListTitleNode in doc2.Descendants(ns_dataservices + "Title")) { ListOfLists += "<li>" + ListTitleNode.Value + "</li>"; } ListOfLists += "</ul>"; table.AddRow("Lists", ListOfLists); PlaceholderMain.Controls.Add(new LiteralControl(table.ToString())); }
protected void cmdHelloCSOM_Click(object sender, EventArgs e) { using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity)) { Web site = clientContext.Web; clientContext.Load(site); Site sc = clientContext.Site; clientContext.Load(sc); clientContext.Load(sc.Owner); clientContext.ExecuteQuery(); var table = new HtmlTableWriter(); table.AddRow("Site ID", site.Id.ToString().ToLower()); table.AddRow("Site URL", site.Url); table.AddRow("Site Language", site.Language.ToString()); table.AddRow("Master Page URL", site.MasterUrl); table.AddRow("Server Relative Url", site.ServerRelativeUrl); table.AddRow("Site Collection Owner", sc.Owner.LoginName); WriteContentToPage("<h2>Host Web Properties</h2>"); WriteContentToPage(table.ToString()); } }
protected void Page_Load(object sender, EventArgs e) { uriHostWeb = Cache["uriHostWeb"].ToString(); appOnlyAccessTokenString = Cache["appOnlyAccessTokenString"].ToString(); HtmlTableWriter table = new HtmlTableWriter(); ClientContext clientContext = TokenHelper.GetClientContextWithAccessToken(uriHostWeb.ToString(), appOnlyAccessTokenString); clientContext.Load(clientContext.Web, site => site.Title); clientContext.Load(clientContext.Web.Lists, lists => lists.Where(list => !list.Hidden)); clientContext.ExecuteQuery(); table.AddRow("Site Title", clientContext.Web.Title); string ListOfLists = "<ul>"; foreach (var list in clientContext.Web.Lists) { ListOfLists += "<li>" + list.Title + "</li>"; } ListOfLists += "</ul>"; table.AddRow("Lists", ListOfLists); PlaceholderMain.Controls.Add(new LiteralControl(table.ToString())); }
protected void Page_Load(object sender, EventArgs e) { uriHostWeb = new Uri(Request.QueryString["SPHostUrl"]); contextTokenString = TokenHelper.GetContextTokenFromRequest(Request); if (contextTokenString != null) { contextToken = TokenHelper.ReadAndValidateContextToken(contextTokenString, Request.Url.Authority); targetPrincipalName = contextToken.TargetPrincipalName; realm = contextToken.Realm; accessToken = TokenHelper.GetAccessToken(contextToken, uriHostWeb.Authority); accessTokenString = TokenHelper.GetAccessToken(contextToken, uriHostWeb.Authority).AccessToken; appOnlyAccessToken = TokenHelper.GetAppOnlyAccessToken(contextToken.TargetPrincipalName, uriHostWeb.Authority, contextToken.Realm); appOnlyAccessTokenString = appOnlyAccessToken.AccessToken; // cache state that can be shared across user Cache["uriHostWeb"] = uriHostWeb; Cache["appOnlyAccessTokenString"] = appOnlyAccessTokenString; // cache state that must be tracked on per-user basis Session["contextTokenString"] = contextTokenString; Session["accessTokenString"] = accessTokenString; } #region "Incoming Data" HtmlTableWriter table1 = new HtmlTableWriter(); table1.AddRow("Request URL", this.Request.Path); foreach (var param in Request.Form.AllKeys) { table1.AddRow("Request.Form['" + param + "']", Request.Form[param].ToString()); } foreach (var param in Request.QueryString.AllKeys) { table1.AddRow("Request.QueryString['" + param + "']", Request.QueryString[param].ToString()); } placeholderIncomingData.Controls.Add(new LiteralControl(table1.ToString())); #endregion #region "Context Token" HtmlTableWriter table2 = new HtmlTableWriter(); table2.AddRow("Context Token (RAW)", contextTokenString); if (contextToken != null) { table2.AddRow("Content Token (JSON)", contextToken.ToString()); table2.AddRow("Cache Key", contextToken.CacheKey); table2.AddRow("Realm", contextToken.Realm); table2.AddRow("Security Token Service Uri", contextToken.SecurityTokenServiceUri); table2.AddRow("Target Principal Name", contextToken.TargetPrincipalName); table2.AddRow("Valid From", contextToken.ValidFrom.ToString()); table2.AddRow("Valid To", contextToken.ValidTo.ToString()); table2.AddRow("Refresh Token", contextToken.RefreshToken); placeholderContextToken.Controls.Add(new LiteralControl(table2.ToString())); } #endregion #region "Access Token" if (contextToken != null) { HtmlTableWriter table3 = new HtmlTableWriter(); // create OAuth access token table3.AddRow("Access Token", accessTokenString); table3.AddRow("Access Token (JSON)", accessToken.ToString()); table3.AddRow("Resource", accessToken.Message["resource"]); table3.AddRow("NotBefore", accessToken.NotBefore.ToString()); table3.AddRow("ExpiresOn", accessToken.ExpiresOn.ToString()); table3.AddRow("ExpiresIn", TimeSpan.FromSeconds(Convert.ToInt32(accessToken.ExpiresIn)).TotalHours.ToString("0.0") + " hours"); foreach (var msg in accessToken.Message) { //table3.AddRow("Message - " + msg.Key, msg.Value); } placeholderAccessToken.Controls.Add(new LiteralControl(table3.ToString())); } #endregion #region "App-only Access Token" if (contextToken != null) { appOnlyAccessToken = TokenHelper.GetAppOnlyAccessToken(contextToken.TargetPrincipalName, uriHostWeb.Authority, contextToken.Realm); appOnlyAccessTokenString = appOnlyAccessToken.AccessToken; HtmlTableWriter table4 = new HtmlTableWriter(); // create OAuth access token table4.AddRow("App-only Access Token", appOnlyAccessTokenString); table4.AddRow("App-only Access Token (JSON)", appOnlyAccessToken.ToString()); table4.AddRow("Resource", appOnlyAccessToken.Message["resource"]); table4.AddRow("NotBefore", appOnlyAccessToken.NotBefore.ToString()); table4.AddRow("ExpiresOn", appOnlyAccessToken.ExpiresOn.ToString()); table4.AddRow("ExpiresIn", TimeSpan.FromSeconds(Convert.ToInt32(appOnlyAccessToken.ExpiresIn)).TotalHours.ToString("0.0") + " hours"); foreach (var msg in appOnlyAccessToken.Message) { table4.AddRow("Message - " + msg.Key, msg.Value); } placeholderAppOnlyAccessToken.Controls.Add(new LiteralControl(table4.ToString())); } #endregion }