如何在不需要 Microsoft 帐户的情况下与外部用户共享 SharePoint 文件夹

How to share a SharePoint folder with an external user without requiring a Microsoft account

TL;DR:

如何以编程方式与外部用户共享 SharePoint 在线文件夹,以便用户只需要访问代码而不需要 Microsoft 帐户。

完整版: 我正在使用 SharePoint 在线。我想与外部用户共享 SharedDocuments 列表中的文件夹。这很简单,从 SharePoint 前端 - select 文件夹,选择共享,输入外部用户电子邮件地址和 select 复制 Link。

SharePoint 将生成一个 url,我可以将其发送给外部用户。外部用户访问 url 以请求通过电子邮件发送的访问代码。输入访问代码允许用户访问该文件夹。用户不需要 Microsoft 帐户。完美的。

我想在代码(c# 和 csom)中实现它。具体来说,我希望能够指定文件夹和外部电子邮件地址并检索共享 URL.

我试过:

Microsoft.SharePoint.Client.Web.CreateOrganizationSharingLink() clientContext.Web.ShareDocument() DocumentSharingManager.UpdateDocumentSharingInfo() WebSharingManager.UpdateWebSharingInformation()

这些方法都会生成一个 link - 但是 link 需要 Microsoft 帐户。它与 UI(上面)中生成的 link 不同。

是否可以只生成访问代码link?

您可以从 Nuget OfficeDevPnP.Core 安装这个库。它包括 Web 对象的扩展方法以创建匿名 URL.

用法: string sharedUrl = web.CreateAnonymousLinkForDocument("directUrlToTheItem", ExternalSharingDocumentOption.View);