client-side object model for sharepoint 2013 - bleeker

Upload: dentisy

Post on 08-Jul-2018

234 views

Category:

Documents


0 download

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