ShareFile API: как создать общие ресурсы для всей учетной записи без явных получателей?C#

Место общения программистов C#
Ответить
Anonymous
 ShareFile API: как создать общие ресурсы для всей учетной записи без явных получателей?

Сообщение Anonymous »

Проблема
Я использую ShareFile .NET SDK для программного создания общих ресурсов, которые должны быть доступны всем сотрудникам в нашей учетной записи ShareFile (аналогично параметру «Только сотрудники» в Outlook). Однако при использовании RequireLogin = true с пустыми получателями только создатель может получить доступ к общему ресурсу.
Справочная информация
При создании общих ресурсов с помощью надстройки Outlook ShareFile с доступом «Клиентские контакты и сотрудники»:
  • Общий ресурс работает для ВСЕХ сотрудников после входа в систему
  • Нет явного необходим список получателей.
  • API показывает RequireLogin: false, но ссылка по-прежнему требует аутентификации.
  • Шаблон URL-адреса: https://account.sharefile.com/d-{shareId}
Однако при создании общих ресурсов программно через API я не могу воспроизвести это поведение.
Текущее Код

Код: Выделить всё

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-адрес результата
Вход Требуется?
Доступ для всех сотрудников?



Код: Выделить всё

/public/share/web-{id}
❌ Нет
✅ Да (но также общедоступно!)

Код: Выделить всё

/public/share/web-{id}
❌ Нет
✅ Да (но также общедоступно!)

✅ Да
❌ Нет (Доступ запрещен)

✅ Да*
❌ Нет (Доступ запрещен)



Общие ресурсы Outlook создают URL-адреса /d-{id, которые требуют входа в систему И работают для всех сотрудников, но проверка их через API показывает RequireLogin: false.
Странное поведение с тестом 4
Интересно, что 4-й тест (

Код: Выделить всё

RequireLogin: true, direct: true
) показывает разное поведение для разных пользователей:
  • Создатель общего доступа: видит страницу входа
  • Другие сотрудники: переходит прямо к «Доступ запрещен», не показывая страницу входа
Это говорит о том, что ShareFile определяет контекст пользователя перед страницей входа, возможно, с помощью файлов cookie сеанса или OAuth context.
Обходное решение (не идеально)
Единственный способ, который я нашел, чтобы заставить его работать, это:
  • Выбрать ВСЕХ сотрудников через client.Accounts.GetEmployees() (Также я должен отметить, что у меня нет доступа к учетным записям клиентов, что означает, что это не удастся для их учетных записей)
  • Преобразовать каждого в пользователя через client.Users.Get(emailAddress: email)
  • Добавить всех в качестве явных получателей
Это требует сотен вызовов API и вызывает проблемы с производительностью и разрешениями.
Вопросы
  • Существует ли свойство или метод API для создания общих ресурсов для всего аккаунта без явных получателей?
  • Как Outlook создает общие ресурсы, требующие входа в систему, но работающие для всех сотрудников?
  • Чем на самом деле управляет параметр Direct? В документации это неясно объясняется.
  • Существует ли ссылка на группу/псевдоним (например, «Все сотрудники»), которую можно добавить к получателям?
  • Существуют ли настройки на уровне учетной записи, влияющие на общий доступ поведение при создании?
Среда
  • ShareFile .NET SDK (последняя версия от NuGet)
  • C# / .NET 9
  • Учетная запись ShareFile: план Enterprise
Ожидаемое поведение
Создайте общий ресурс, который:
  • ✅ Требуется вход в учетную запись ShareFile
  • ✅ Работает для любого сотрудника в учетной записи (без явного списка получателей)
  • ✅ НЕ работает для внешних/не прошедших проверку подлинности пользователей
  • ✅ Создает шаблон URL-адреса /d-{id}
Это стандартный режим доступа «Только сотрудники» или «Контакты клиентов и сотрудники», доступный в веб-интерфейсе ShareFile и надстройке Outlook.

Кто-нибудь успешно реализовал общий доступ на уровне учетной записи через API ShareFile без выборки всех сотрудников?

Подробнее здесь: https://stackoverflow.com/questions/798 ... recipients
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»