3

WPF 응용 프로그램 (C# 4.0) 작업.SharePoint의 문서를 열려면 Word Interop에 자격 증명을 전달하십시오.

시스템은 SharePoint에 여러 Word 문서를 저장합니다. SharePoint는 WebDAV를 통해 Office에 문서 라이브러리를 제공하므로 Word는 해당 문서를 직접 편집 할 수 있습니다.

Word를 시작하여 이러한 문서를 편집하려면 WPF 응용 프로그램에서 Microsoft.Office.Interop.Word를 사용합니다.

Interop.Word를 사용하여 WebDAV를 통해 로컬 문서를 여는 것과 WebDAV를 통해 SharePoint의 문서를 여는 것의 유일한 차이점은 로컬 경로 문자열 대신 URL을 사용한다는 것입니다 .

모든 바로 작동이 그러나

var wordApplication = 
    new Microsoft.Office.Interop.Word.Application { Visible = true }; 

object filePath = 
    "http://PathToSharepoint.com/DocumentLibrary/DocumentName.doc"; 

object missing = Missing.Value; 
object readOnly = false; 
object isVisible = true; 

Document reportDoc = wordApplication.Documents.Open(
    ref filePath, 
    ref missing, 
    readOnly, 
    ref missing, 
    ref missing, 
    ref missing, 
    ref missing, 
    ref missing, 
    ref missing, 
    ref missing, 
    ref missing, 
    ref isVisible); 

reportDoc.Activate(); 

응용 프로그램을 실행하는 Windows 사용자가 문서 라이브러리에 대한 권한이있는 도메인 사용자가 아닌 경우, 최선의 말씀에 사용자 이름과 암호를 묻는 메시지가 표시됩니다, 그리고 최악의 경우에는 COMException을 던지기도합니다.

사용자가 이미 제공해야하는 것과 동일한 자격 증명으로 WPF 앱에 로그인했으며 사용자 이름과 securePassword가 메모리에 있습니다. 그러나 Word에 이러한 자격 증명을 제공하는 방법에 대한 분명한 방법은 없습니다.

누구나 NetworkCredential과 비슷한 것을 제공 할 수있는 단서가 있습니까?

답변

0

사용자 이름과 암호가있는 사용자로 가장하는 코드를 실행하려고 시도 했습니까? 웹에서이를 수행하는 많은 예가 있습니다 (예 : http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx. 지금 당장은 직접 테스트 할 수 없지만 작동해야합니다 ...

+0

정말 좋은 생각인데이 경우에는 작동하지 않습니다. 문제는 응용 프로그램을 실행하는 워크 스테이션이 SharePoint 서버가 실행되는 도메인의 구성원이 아니기 때문에 상자에 유효한 Windows 로그인이 아닌 것입니다. :( – Grank

0

Windows 8.1이 있다고 가정합니다. Office에서 사용하는 자격 증명은 Windows 자격 증명 관리자에 저장됩니다. 시작> "Credential Manager"로 이동 한 다음 Windows 자격 증명을 클릭하여 액세스하십시오.

자격 증명이 유사하게 나타납니다 당신이를 열 때 다음

var cm = new Credential { Target = "MicrosoftOffice15_Data:orgid:[email protected]", PersistanceType = PersistanceType.LocalComputer, Password = "yourverysecurepasswordhere" }; 
cm.Save(); 

:

MicrosoftOffice15_Data:orgid:<emailadress> 

는 사용하여 Windows 자격 증명 스토어에서 자격 자신을 저장할 수있는이 API http://credentialmanagement.codeplex.com 사용 예를 들어 Word를 사용하여 문서를 열면 자격 증명을 묻지 않고 열립니다.

SharePoint Online에서 Office 2013 및 Windows 8.1로 테스트되었습니다.