【问题标题】:How to share a SharePoint folder with an external user without requiring a Microsoft account如何在不需要 Microsoft 帐户的情况下与外部用户共享 SharePoint 文件夹
【发布时间】:2019-10-10 06:42:41
【问题描述】:

TL;DR:

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

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

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

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

我试过了:

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

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

是否可以生成仅访问代码的链接?

【问题讨论】:

    标签: sharepoint sharepoint-online csom


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 [Jack Le]。我试过使用 CreateAnonymousLinkForDocument。然而,这会创建一个匿名链接(即,它对所有人都有效)。我希望能够指定一个外部电子邮件地址,然后接收仅对该电子邮件地址有效的链接。
    • 哦,我的错。你需要使用这个扩展方法,它也是 PnP-Cores 的一部分public static SharingResult ShareDocument(this Web web, string urlToDocument, string targetEmailToShare, ExternalSharingDocumentOption shareOption, bool sendEmail = true, string emailBody = "Document shared", bool useSimplifiedRoles = true)
    • 完美 - 谢谢杰克。我可以使用 SharingResult 的 InvitedUsers 属性来检索电子邮件中发送的 InvitationLink。感谢您的帮助。
    猜你喜欢
    • 2020-05-27
    • 2022-01-03
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2017-03-05
    相关资源
    最近更新 更多