본문 바로가기
MS Cloud

MsOnlineClaimsHelper 사용방법

 

Wictor.Office365.ClaimsDemo.zip

SharePoint Online(Office 365)을 개발할 때, Client Object Model로 개발시, 로그인 처리를 하는 방법에 대한 설명을 하겠습니다.

 

로그인 처리를 위해 몇가지 방법이 있는데요.

Remote Authentication in SharePoint Online Using Claims-Based Authentication

Remote Authentication in SharePoint Online Using the Client Object Model

Authentication with SharePoint Online and the Client Side Object Model

 

하지만, 여기서는 요즘 주로 많이 사용되어지는 MsOnlineClaimsHelper 클래스를 이용하는 방법을 설명하겠습니다.

 

아래 사이트에 가서 파일을 내려받습니다.(이 블로그 글에도 첨부해 놓겠습니다.)

http://www.wictorwilen.se/Media/Default/files/Wictor.Office365.ClaimsDemo.zip
내려 받은파일은 Demo 프로젝트입니다.

 

Demo 프로젝트를 구동해보기 위해서 참조파일들이 필요한데요.

Microsoft.IdentityModel의 경우, .Net Framework 4.0 프로젝트는 기본 Component에 안나오므로

C:\Windows\assembly\GAC_MSIL\Microsoft.IdentityModel\3.5.0.0__31bf3856ad364e35\Microsoft.IdentityModel.dll

에 가셔서 수동으로 등록해 줍니다.

 

 

또한, ClientOmAuth 클래스에서 XmlDictionaryWriter 참조에러가 나는데, System.Runtime.Serialization.dll을 추가해 주시면 됩니다.

 

샘플소스는 다음과 같습니다.

 

Uri oUri = new Uri("https://    .sharepoint.com");
MsOnlineClaimsHelper claimsHelper = new MsOnlineClaimsHelper(oUri, "wbkim@    .onmicrosoft.com", "********");           
using (SP.ClientContext context = new SP.ClientContext(oUri))
{
 context.ExecutingWebRequest += claimsHelper.clientContext_ExecutingWebRequest;

 try
 {
  SP.ListItem oListItem;
  SP.List oList = context.Web.Lists.GetByTitle("        ");

  oListItem = oList.AddItem(new SP.ListItemCreationInformation());
  oListItem["Title"] = "[" + assigned.CwpName + "] " + assigned.FiwpName;
    oListItem["AssignedTo"] = SP.FieldUserValue.FromUser("wbkim@    .onmicrosoft.com");
                oListItem.Update();
  context.ExecuteQuery();
         }
         catch (SP.ServerException) { }
}