Search code examples
c#sharepoint-2010sharepoint-onlinesharepoint-clientobject

Access SharePoint online using client object model- Forbidden error


I tried to Create a new list item using client object model. I have created an asp.net application to do the task. It works if I pass the URL of SharePoint server which is installed in my machine. But if I give my SharePoint online URL it is not working as below code shows. I get "The remote server returned an error: (403) Forbidden. " error. Any idea?

ClientContext context = new ClientContext("https://xxx.sharepoint.com/SitePages/");
List announcementsList = context.Web.Lists.GetByTitle("Announcements");
ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
Microsoft.SharePoint.Client.ListItem newItem = announcementsList.AddItem(itemCreateInfo);
newItem["Title"] = result.City;
newItem["Body"] = result.State;
newItem.Update();
context.ExecuteQuery();

Solution

  • if you are trying to get a Context object from SharePoint Online you have to put in the right Credentials, as for SharePoint Online you should use the SharePointOnlineCredentials Class

    A possible Authentication Method can be look like this:

    private void AutheticateO365(string url, string password, string userName)
    {
       Context = new ClientContext(url);
       var passWord = new SecureString();
       foreach (char c in password.ToCharArray()) passWord.AppendChar(c);
       Context.Credentials = new SharePointOnlineCredentials(userName, passWord);
       var web = Context.Web;
       Context.Load(web);
       Context.ExecuteQuery();
    }