2016-05-31 1 views
0

I succès connecter en ligneComment créer ClientContext en service Web .asmx

list.Credentials = new System.Net.NetworkCredential("domain\\username", "password");

mais ne peut pas se joindre à ClientContextweb service: J'obtiens l'erreur 401. Comment ajouter nouvel élément à SPList sur SPSite à distance avec cette code? Qu'est-ce que j'ai besoin de réparer? Je vous remercie.

public void UpdateSPList(string Title) 
{ 
    using (AuthenticationSvc.Authentication authSvc = new AuthenticationSvc.Authentication()) 
    { 
     try 
     { 
      using (ListsSvc.Lists list = new ListsSvc.Lists()) 
      { 
       list.Url = @"http://example-site.com/_vti_bin/Lists.asmx"; 
       list.CookieContainer = new System.Net.CookieContainer(); 
       list.AllowAutoRedirect = true; 
       list.PreAuthenticate = true; 

       list.Credentials = new System.Net.NetworkCredential("domain\\username", "password"); 

       string siteUrl = "http://example-site.com"; 
       ClientContext context = new ClientContext(siteUrl); 

       List announcementsList = context.Web.Lists.GetByTitle("ListName"); 
       ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation(); 
       ListItem newItem = announcementsList.AddItem(itemCreateInfo); 
       newItem["Title"] = "New Item"; 
       newItem.Update(); 
       context.ExecuteQuery(); 
      } 
     } 
     catch (Exception ex) 
     { 
      string errorEntry = ex.Message; 
     } 

    } 
} 

Répondre

2

Vous pouvez utiliser la méthode UpdateListItems pour insérer de nouveaux éléments dans une liste SharePoint. Vous devez définir l'attribut cmd sur "Nouveau".

public static XmlNode UpdateListItemInsert() 
{ 
      listservice.Lists listProxy = new listservice.Lists(); 

      string xml = "<Batch OnError='Continue'><Method ID='1' Cmd='New'><Field Name='ID'/><Field Name='usercol'>-1;#BASESMCDEV2\\testmoss</Field></Method><Method ID='2' Cmd='New'><Field Name='ID'/><Field Name='usercol'>-1;#BASESMCDEV2\\testmoss</Field></Method></Batch>"; 


      XmlDocument doc = new XmlDocument(); 
      doc.LoadXml(xml); 

      XmlNode batchNode = doc.SelectSingleNode("//Batch"); 


      listProxy.Url = "http://basesmcdev2/sites/tester1/_vti_bin/lists.asmx"; 
      listProxy.UseDefaultCredentials = true; 

      XmlNode resultNode = listProxy.UpdateListItems("custom1", batchNode); 

      XElement e = XElement.Parse(resultNode.OuterXml); 
      var id = from t in e.Descendants().Attributes("ows_ID") select t.Value; 


      return resultNode; 

} 

Plus Référence: