Я в настоящее время разрабатываю программу, которая загрузит выбранные файлы в определенную папку (и автоматически создавать папки, при необходимости) на SharePoint и дать доступ к конкретным пользователям на основе их электронных писем, используя SharePoint CSOM, однако я не могу получить ссылки для людей за пределами моего домена.
Например, с моим текущим кодом я получаю такие ссылки:
https://domain.sharepoint.com/:f:/r/sites/TestSite/Shared%20Documents/2019/11157/Test%20Upload?csf=1
Тем не менее, ссылка, которую я пытаюсь получить, похоже на следующее:
https://domain.sharepoint.com/:f:/s/TestSite/EmUDng-KzwxEtHKyJ9Okl0MBlS_z8gxGFl4UUjuGXHmR9w
Я могу получить ссылку, указанную выше, если я войду в SharePoint и получу ее вручную (программа правильно создает ссылки), но это противоречит цели моей программы. Программа должна автоматизировать загрузку и получение ссылок на файлы из домена моей компании.
Я не хочу первой ссылки, потому что только люди, которые находятся в моем домене, могут получить доступ к файлу / папке с ним. 2-я ссылка позволяет всем, кто получил доступ (по адресу электронной почты) для доступа к файлу / папке.
В настоящее время я получаю первую ссылку, используя код отсюда: https://www.c-sharpcorner.com/article/generating-sharing-links-report-and-removing-sharing-links-using-sharepoint-onli/ < / а>
Я также пробовал другие предложения, которые я нашел на stackexchange, таких как: https: // SharePoint. stackexchange.com/questions/91451/manage-links-for-shared-files.
Все примеры, которые я нашел, как приведенные выше, приводят к неправильным ссылкам.
Если в настоящее время не ясно, я не после анонимной ссылки или как создавать общие ссылки (как у меня уже есть эта работа), я после ссылки, которая появится здесь
1 ответ
Мне удалось найти решение, просто попробовав все наугад. Вы можете сделать следующее:
Во-первых, создайте обмен ссылками так, как я был ранее:
SharingResult result = context.Web.ShareDocument(site,
email,
ExternalSharingDocumentOption.View,
false,
"Document Shared as test");
Затем с помощью переменной результата возьмите ссылку приглашения одного из приглашенных пользователей и затем измените ее, чтобы она работала для любого пользователя (как оказалось, конкретные ссылки одинаковы для всех пользователей, кроме параметра в конце)
string link = result.InvitedUsers.FirstOrDefault().
int index = link.IndexOf("?");
if (index > 0) link = link.Substring(0, index);
Это приводит к правильной ссылке, которую я искал. Я говорил с некоторыми людьми от Microsoft, спрашивая об этом, так что благодаря Microsoft за то, что сказал мне, что это было невозможно!
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.