Я использую ShareFile .NET SDK для программного создания общих ресурсов, которые должны быть доступны всем сотрудникам в нашей учетной записи ShareFile (аналогично параметру «Только сотрудники» в Outlook). Однако при использовании RequireLogin = true с пустыми получателями только создатель может получить доступ к общему ресурсу.
Справочная информация
При создании общих ресурсов с помощью надстройки Outlook ShareFile с доступом «Клиентские контакты и сотрудники»:
- Общий ресурс работает для ВСЕХ сотрудников после входа в систему
- Нет явного необходим список получателей.
- API показывает RequireLogin: false, но ссылка по-прежнему требует аутентификации.
- Шаблон URL-адреса: https://account.sharefile.com/d-{shareId}
Текущее Код
Код: Выделить всё
var share = new Share
{
Items = items,
MaxDownloads = 0,
Title = "My Share",
RequireLogin = true, // Tried both true and false
ExpirationDate = DateTime.Now.AddDays(180),
ShareAccessRight = new ShareAccessRight
{
AccessRightType = ShareAccessRightType.FullControl
},
Recipients = null // Empty - want account-wide access
};
var result = await client.Shares
.Create(share, notify: false, direct: true)
.ExecuteAsync();
Я систематически тестировал все комбинации параметров:
RequireLogin
прямой
URL-адрес результата
Вход Требуется?
Доступ для всех сотрудников?
Код: Выделить всё
falseКод: Выделить всё
falseКод: Выделить всё
/public/share/web-{id}Код: Выделить всё
falseКод: Выделить всё
trueКод: Выделить всё
/public/share/web-{id}Код: Выделить всё
trueКод: Выделить всё
falseКод: Выделить всё
/d-{id}Код: Выделить всё
trueКод: Выделить всё
trueКод: Выделить всё
/d-{id}Общие ресурсы Outlook создают URL-адреса /d-{id, которые требуют входа в систему И работают для всех сотрудников, но проверка их через API показывает RequireLogin: false.
Странное поведение с тестом 4
Интересно, что 4-й тест (
Код: Выделить всё
RequireLogin: true, direct: true- Создатель общего доступа: видит страницу входа
- Другие сотрудники: переходит прямо к «Доступ запрещен», не показывая страницу входа
Обходное решение (не идеально)
Единственный способ, который я нашел, чтобы заставить его работать, это:
- Выбрать ВСЕХ сотрудников через client.Accounts.GetEmployees() (Также я должен отметить, что у меня нет доступа к учетным записям клиентов, что означает, что это не удастся для их учетных записей)
- Преобразовать каждого в пользователя через client.Users.Get(emailAddress: email)
- Добавить всех в качестве явных получателей
Вопросы
- Существует ли свойство или метод API для создания общих ресурсов для всего аккаунта без явных получателей?
- Как Outlook создает общие ресурсы, требующие входа в систему, но работающие для всех сотрудников?
- Чем на самом деле управляет параметр Direct? В документации это неясно объясняется.
- Существует ли ссылка на группу/псевдоним (например, «Все сотрудники»), которую можно добавить к получателям?
- Существуют ли настройки на уровне учетной записи, влияющие на общий доступ поведение при создании?
- ShareFile .NET SDK (последняя версия от NuGet)
- C# / .NET 9
- Учетная запись ShareFile: план Enterprise
Создайте общий ресурс, который:
-
Требуется вход в учетную запись ShareFile
-
Работает для любого сотрудника в учетной записи (без явного списка получателей)
-
НЕ работает для внешних/не прошедших проверку подлинности пользователей
-
Создает шаблон URL-адреса /d-{id}
Кто-нибудь успешно реализовал общий доступ на уровне учетной записи через API ShareFile без получения данных обо всех сотрудниках?
Подробнее здесь: https://stackoverflow.com/questions/798 ... recipients
Мобильная версия