c#中的Sharepoint Client与指定用户共享文件夹



我们有一个使用SharePoint. client上传文件到SharePoint的。net web应用程序。站点使用APP客户端ID和secret连接SharePoint。文件夹创建和文件上传全部工作找到。但是它需要与我们组织中的特定用户共享文件夹(包含文档所在的子文件夹),就像在SharePoint中所做的那样(见截图)

共享文件夹

指定用户

我尝试了很多方法,但主要是这两种:

  1. 通过角色绑定:使用SharePoint客户端对象模型共享文档库中的特定文件夹。但是这给了我"拒绝访问">
  2. 通过"sp . web . shareobject"传递类似于https://sharepoint.stackexchange.com/questions/279451/sharepoint-rest-api-shareobject-method的参数。但是"共享结果"它返回给定的错误"调用者没有权限授予权限"。

有办法完成这个任务吗?谢谢!

试试这个:

public void sendEmailWithLink(string email, string role = "read")
{
ClientContext context = new ClientContext(contextoURL);
SecureString passWordSegur = new SecureString();
foreach (var c in pw)
passWordSegur.AppendChar(c);
context.Credentials = new SharePointOnlineCredentials(user, passWordSegur);
Web web = context.Web;
string aux = "[{"Key":"" + email + ""}]";
string usuario = aux;
if (role == "contribute")
{
SharingResult result = Web.ShareObject((ClientRuntimeContext)context, folderPath, usuario, "role:1073741827", 0, true, true, false, "Carpeta o documento de SharePoint compartido contigo", "", true);
web.Context.Load(result);
context.ExecuteQuery();
}
else if (role == "full control")
{
SharingResult result = Web.ShareObject((ClientRuntimeContext)context, folderPath, usuario, "role:1073741829", 0, true, true, false, "Carpeta o documento de SharePoint compartido contigo", "", true);
web.Context.Load(result);
context.ExecuteQuery();
}
else if (role == "edit")
{
SharingResult result = Web.ShareObject((ClientRuntimeContext)context, folderPath, usuario, "role:1073741830", 0, true, true, false, "Carpeta o documento de SharePoint compartido contigo", "", true);
web.Context.Load(result);
context.ExecuteQuery();
}
else if (role == "read")
{
SharingResult result = Web.ShareObject((ClientRuntimeContext)context, folderPath, usuario, "role:1073741826", 0, true, true, false, "Carpeta o documento de SharePoint compartido contigo", "a", true);
web.Context.Load(result);
context.ExecuteQuery();
}
}

此代码向"email"中指定的电子邮件地址发送电子邮件。其中包含一个链接,该链接授予对某个文件夹(在文件夹路径中指定)的权限。

有关ShareObject函数的文档,请查看此链接:https://learn.microsoft.com/es-es/archive/blogs/vesku/external-sharing-api-for-sharepoint-and-onedrive-for-business

关于辅助使用是因为你应该创建一个PersonPicker(在我分享的链接中,你可以看到所有的信息),但这恰好与我一起工作。

最新更新