Работа над приложением WPF (C # 4.0).
Система хранит несколько документов Word в SharePoint.Word может напрямую редактировать эти документы, так как SharePoint предоставляет библиотеки документов в Office через WebDAV.
Чтобы запустить Word для редактирования этих документов, наше приложение WPF использует Microsoft.Office.Interop.Word.
Обнаружено (через простую попытку), что единственное различие между использованием Interop.Word для открытия локального документа и документа из SharePoint через WebDAV заключается в том, что передаваемый вами объект ссылки FileName является 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, на котором запущено приложение, не является пользователем домена с разрешениями на библиотеку документов, в лучшем случае Word запросит у них запрос.имя пользователя и пароль, а в худшем случае иногда просто выбрасывать COMException.
Пользователь уже вошел в наше приложение WPF с теми же учетными данными, которые ему необходимо будет предоставить, и у нас в памяти есть имя пользователя и securePassword.Тем не менее, я не вижу очевидного способа, как вы могли бы предоставить эти учетные данные в Word.
Кто-нибудь понял, как я мог бы предоставить что-то похожее на NetworkCredential?