Exemple #1
0
        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());
            }
        }
Exemple #2
0
        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()));
        }
Exemple #3
0
        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()));
        }
Exemple #4
0
        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());
            }
        }
Exemple #5
0
        private static void Demo2_DemonstrateSimultaneousRenderToConsoleAndHtmlFile()
        {
            using (StreamWriter demo2Out = new StreamWriter("demo2Out.html"))
            {
                // First, let's build a collection of objects to render.
                var filesInCurrentDirectory =
                    new DirectoryInfo(Directory.GetCurrentDirectory()).GetFiles();

                // The anonymous type we're building has properties Name, Extension and CreationTime.
                // The resulting table will have a column for each of those properties.
                var objectsToRender =
                    filesInCurrentDirectory
                    .Select(x => new { x.Name, x.Extension, x.CreationTime });

                // Next, set up some table renderers. First, a writer that will write the
                // table to the console.
                var consoleTableWriter = new ConsoleTableWriter();

                consoleTableWriter.SetBorderCharacterSet(TextTableWriter.BasicAsciiBorderCharacterSet);

                // Now, a writer that will write HTML to an output file.
                var htmlTableWriter = new HtmlTableWriter(demo2Out);

                // Now, a single renderer which takes care of writing our single table to
                // both of the above destinations.
                var multipleTableRenderer = new MultipleTargetTableWriter(consoleTableWriter, htmlTableWriter);

                // Finally, we actually render the table
                TableRenderer.Render(objectsToRender, multipleTableRenderer);
            }

            // And launch a browser to display the generated html
            Process.Start("demo2Out.html");
        }
        public void IntegersAreRightJustifiedByDefault()
        {
            var toRender = new[]
            {
                new { Value = 35 },
                new { Value = 1542 }
            };

            var sw = new StringWriter();

            HtmlTableWriter htw = new HtmlTableWriter(sw);

            htw.HtmlTableElementId = "x";

            TableRenderer.Render(toRender, htw);

            string x = sw.ToString();

            Assert.IsTrue(x.Contains("<td style=\"text-align: right;\">1,542</td>"));
        }
Exemple #7
0
        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 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 = 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 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
        }
        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 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());
              }
        }
Exemple #13
0
        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
        }