2016-05-31 9 views
0

나는 성공이 라인이 .asmx 웹 서비스에 ClientContext를 만드는 방법

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

에 연결하지만 ClientContextweb service에 참가할 수 없습니다 : 나는 새 항목을 추가하는 방법 오류 401이 원격 SPSite에 SPList에 도착 암호? 내가 고쳐야 할게 뭐야? 고맙습니다.

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; 
     } 

    } 
} 

답변

2

UpdateListItems 메서드를 사용하여 새 항목을 SharePoint 목록에 삽입 할 수 있습니다. cmd 속성을 'New'로 설정해야합니다.

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; 

} 

이상의 기준 :