C#使用SharePoint客户端对象模型检查SharePoint列表权限

时间:2014-11-21 15:29:54

标签: c# permissions sharepoint-clientobject

从客户端应用程序,我需要使用客户端对象模型检查给定用户是否对给定文档库具有权限。 我想要一些相当于以下Server对象函数的东西

spList.DoesUserHavePermissions(SPBasePermissions.EditListItems);
spList.DoesUserHavePermissions(SPBasePermissions.ManageLists);
spList.DoesUserHavePermissions(SPBasePermissions.AddListItems);
spList.DoesUserHavePermissions(SPBasePermissions.AddListItems)

谢谢!

2 个答案:

答案 0 :(得分:4)

我在this Blog中找到了listItems权限中提到的解决方案,并且它适用于列表。 解决方案如下:



private static bool DoesUserHasPermission(ClientContext context, List list, PermissionKind permissionKind)
        {
            context.Load(list, t => t.EffectiveBasePermissions);
            context.ExecuteQuery();

            return list.EffectiveBasePermissions.Has(permissionKind);
        }




答案 1 :(得分:0)

从客户端应用程序中,最佳方法是使用SharePoint Web服务。 Sharepoint包含许多可供第三方开发人员进行远程开发的服务。

在您的情况下,我建议使用SharePoint权限Web服务(http:///_vti_bin/permissions.asmx)。

您可以在Sharepoint中查询项目权限。以下是分步教程:http://jamestsai.net/Blog/post/Understand-SharePoint-Permissions-Part-2-Check-SharePoint-usergroup-permissions-with-Permissions-web-service-and-JavaScript.aspx