티스토리 뷰

 

SharePoint 2013 App – 자동 호스트 (Autohosted App) (3)

 

이번 글에서는 이전에서 작업한 SharePoint 2013 에 대한 프로젝트에 SharePoint의 개체를 액세스해보는 코드를 작성해보겠습니다. 이전 버전에서도 제공된 CSOM-클라이언트 개체 모델(Client Side Object Model) 을 자동 호스트 웹 프로젝트에서 액세스 하게 되며 인증에 대한 부분은 TokenHelper.cs 파일을 통해서 처리되게 구성할 수 있습니다.

 

TokenHelper.cs CSOM 코드에 대한 내용은 SharePoint 2013 응용 프로그램을 생성하면 웹 프로젝트에 있는 것을 알 수 있습니다.

 

여기서는 앞에서 작업했던 프로젝트에 CSOM 을 적용해보도록 하겠습니다. 먼저 프로젝트에서 TokenHelper.cs 파일이 있는지 확인하고 소스를 열어 네임스페이스가 프로젝트 이름과 동일한 이름으로 구성되어 있는지 확인합니다. 다르다면 변경해주면 됩니다.

 

namespace AutohostMVC4Web

{

 

    public class TokenHelper

    {

 

MVC 4 프로젝트에 빈 컨트롤러를 추가합니다. 이름은 Home으로 지정하겠습니다.

 

생성된 컨트롤러에 아래와 같은 using 구문을 추가합니다.

using Microsoft.SharePoint.Client;

 

Index 액션 메서드를 아래와 같이 수정합니다.

 

public ActionResult Index()

        {

            var contextToken =               
TokenHelper.GetContextTokenFromRequest(System.Web.HttpContext.Current.Request);

            var hostWeb = System.Web.HttpContext.Current.Request["SPHostUrl"];

 

            using (var clientContext =

                TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken

, Request.Url.Authority))

            {

                Web web = clientContext.Web;

 

                clientContext.Load(web, w => w.Lists.Include(l => l.Title).Where(l => !l.Hidden));

                clientContext.ExecuteQuery();

                clientContext.Dispose();

 

                return View(web.Lists);

            }

        }

 

 

SharePoint URL 을 받아 TokenHelper.GetClientContextWithContextToken 를 통해 CSOMContext 개체를 얻어 옵니다. 그리고는 clientContext를 통해 SharePoint 개체들을 액세스 하게 됩니다.

 

자 그럼 View 에서 화면에 출력해보도록 하겠습니다. Index 메서드에서 오른쪽 클릭하고 뷰를 생성합니다.

뷰에서는 아래와 같은 코드로 변경합니다.

 

@{

    ViewBag.Title = "Index";

}

 

<div>

 

    <ul>

        @foreach (var list in Model)

        {

            <li>@list.Title</li>

        }

    </ul>

</div>

 

 

AppManifest.xml 파일을 더블 클릭하여 시작 주소를 Home 으로 지정하고 솔루션을 배포하여 자동 호스트 웹에서 CSOM 결과를 확인합니다. {StandardTokens} 에는 SPHostUrl SPAppWebUrl 이 포함되어 있습니다.

 

 

필요하다면 아래와 같이 디버깅도 가능합니다.

 

 

자동 호스트 웹 응용 프로그램에서 SharePoint 에 있는 개체를 액세스해서 화면에 출력하고 있습니다.

 

 

모양이 너무 간단한데 다음 글에서는 Chrome Style을 적용해보겠습니다.

 

댓글