2017-12-12 20 views
0

제 질문은 온라인 쉐어 포인트에 관한 것입니다. 내 프로젝트에서 버전으로 목록 항목을 다운로드하려고합니다. 현재 목록 항목 버전을 다운로드 할 수는 있지만 버전을 다운로드 할 수는 없습니다. 나는 Canonical과 Revision 경로를 계산하는 방법을 보여주는 this answer을 언급했다. 그러나 데이터를 가져 오는 중에 오류가 발생했습니다.목록 항목 버전을 다운로드하려면 어떻게해야합니까?

원격 서버에서 오류를 반환했습니다. (403) 금지되었습니다.

그리고 응답 헤더가 "액세스가 거부되었습니다."이 위치 % 2c의 파일을 열기 전에 먼저 웹 사이트를 탐색하고 자동으로 로그인하는 옵션을 선택해야합니다. "

string url = "https://test.sharepoint.com/teams/Mycompany"; 
ScureString f_SecurePass = new SecureString(); 
foreach (char ch in password) 
    f_SecurePass.AppendChar(ch); 

clientcontext = new ClientContext(url); 
var credentials = new SharePointOnlineCredentials(userid, f_SecurePass);     
clientcontext.Credentials = credentials; 
Web web = clientcontext.Web; 
clientcontext.Load(web, website => website.Lists); 
clientcontext.ExecuteQuery(); 

CamlQuery camlQ = new CamlQuery();        
camlQ.ViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/>" + 
        "<Value Type='Number'>0</Value></Geq></Where></Query><RowLimit>100</RowLimit></View>"; 

var cq = _list.GetItems(camlQ); 
clientcontext.Load(cq, items => items.Include(item => item.Id, 
       item=>item.EffectiveBasePermissionsForUI, 
       item=>item.EffectiveBasePermissions)); 

clientcontext.ExecuteQuery(); 

var itm = _list.GetItemById(itemid); 
clientcontext.Load(itm, r => r.Id, r => r.DisplayName); 
clientcontext.ExecuteQuery(); 


foreach (FileVersion itemVersion in itm.File.Versions) 
{ 
    int size = itemVersion.Size; 
    string versionlbl = itemVersion.VersionLabel; 
    string newversion = url + itemVersion.Url; 
    System.WebClient client = new System.Net.WebClient(); 
    client.Credentials = new NetworkCredential(userid, f_SecurePass); 
    System.IO.Stream Data = client.OpenRead(newversion);// Throws exception 
} 

어떻게 목록 항목 버전을 다운로드 할 수 있습니까?

UPDATE : 내가

을 사용하여 파일 버전을 다운로드하려고하면

File.OpenBinaryDirect (clientcontext, NEWVERSION); 는 =

메시지 오류 다음 발생 "지정한 인수가 유효한 값 범위를 벗어났습니다 \ 연구 \ 이름 nParameter :. serverRelativeUrl"

+0

그것은 V1.0를 들어 파일 의 버전에 https://test.sharepoint.com/teams/Mycompany/_vti_history/512/Shared 문서를 따라/내 CODE.docx – Mayuresh

답변