client-side object model for sharepoint 2013 - bleeker
TRANSCRIPT
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
1/14
Client-Side Object Model for
SharePoint 2013
Todd Bleeker, Mindsharp
http://tinyurl.com/SPSTC-CSOM
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
2/14
Sponsors
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
3/14
JSOM CSOM REST
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
4/14
jQuery CDN
(window.jQuery || document.write(
''));
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
5/14
Logo
• Composed look color will bleed thru the transparent
color in the App Icon
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
6/14
App Web Context – JSOM
context = SP.ClientContext.get_current();
web = context.get_web();
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
7/14
Host Web Context – JSOM XSS
appWebUrl = _spPageContextInfo.webAbsoluteUrl;
appWebUrl = $.getDecodedUrlVar("SPAppWebUrl");context = SP.ClientContext.get_current();
factory = new SP.ProxyWebRequestExecutorFactory(appWebUrl);
context.set_webRequestExecutorFactory(factory);
hostWebUrl = $.getDecodedUrlVar("SPHostUrl");
appContextSite = new SP.AppContextSite(context, hostWebUrl);
hostWeb = appContextSite.get_web();
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
8/14
SharePoint-Hosted JSOM Demo
• jQuery CDN
• Logo
• JSLint
• Default
• JSOM
• JSOM XSS
• Permissions
•
JSOM Leaders
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
9/14
Host Web Context – CSOM S2S
Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);
using (var clientContext =
TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb,
Request.LogonUserIdentity))
{
clientContext.ExecuteQuery();
}
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
10/14
Host Web Context – CSOM ACS
var contextToken =
TokenHelper.GetContextTokenFromRequest(Page.Request);var hostWeb = Page.Request["SPHostUrl"];
using (var clientContext =
TokenHelper.GetClientContextWithContextToken(
hostWeb, contextToken, Request.Url.Authority))
{
clientContext.ExecuteQuery();
}
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
11/14
Host Web Context – CSOM OAuth
string contextToken =
TokenHelper.GetContextTokenFromRequest(Page.Request);
string country = Request.QueryString["Country"];
// Assume ACS
if (null != contextToken)
{
string hostWeb = Page.Request["SPHostUrl"];
using (var clientContext =
TokenHelper.GetClientContextWithContextToken(hostWeb,
contextToken, Request.Url.Authority)){
clientContext.ExecuteQuery();
}
}
else
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
12/14
Host Web Context – CSOM Oauth (cont.)
{
// Assume S2Sif (!string.IsNullOrEmpty(
ConfigurationManager.AppSettings["ClientSigningCertificatePath"]))
{
Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);
using (var clientContext =
TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb,
Request.LogonUserIdentity))
{
clientContext.ExecuteQuery();
}
}
}
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
13/14
Provider-Hosted CSOM
• Default CSOM
• Permissions
• CSOM S2S
• CSOM ACS
• CSOM Oauth
-
8/19/2019 Client-Side Object Model for SharePoint 2013 - Bleeker
14/14
Questions and Discussion